Søg bolig
0 Boliger til salg
Dette er en samlet oversigt over boliger til salg hos din tilknyttede mægler.
Error compiling template "/Paragraph/user_sale_itemsSearch.cshtml" Line 13: The type or namespace name 'Broker' does not exist in the namespace 'RealEstate' (are you missing an assembly reference?) Line 42: 'User.GetCurrentExtranetUser()' is obsolete: 'Use UserContext.Current.User instead.' Line 45: The type or namespace name 'Broker' does not exist in the namespace 'RealEstate' (are you missing an assembly reference?) Line 48: 'User.IsExtranetUserLoggedIn()' is obsolete: 'Use IsFrontendUserLoggedIn() instead.' Line 66: 'User.Groups' is obsolete: 'Use GetGroups instead.' Line 68: 'Group' does not contain a definition for 'Item' and no accessible extension method 'Item' accepting a first argument of type 'Group' could be found (are you missing a using directive or an assembly reference?) Line 109: 'Product' does not contain a definition for 'GetProductsByProductIDs' Line 110: 'TSource' does not contain a definition for 'GetFieldDateTimeValue' and the best extension method overload 'ProductExtensions.GetFieldDateTimeValue(Product, string)' requires a receiver of type 'Dynamicweb.Ecommerce.Products.Product' Line 158: The type or namespace name 'Broker' does not exist in the namespace 'RealEstate' (are you missing an assembly reference?) Line 162: The type or namespace name 'Broker' does not exist in the namespace 'RealEstate' (are you missing an assembly reference?) Line 172: The type or namespace name 'Broker' does not exist in the namespace 'RealEstate' (are you missing an assembly reference?) Line 461: 'Utils' does not contain a definition for 'ExtractMaskedEmail' Line 464: 'Utils' does not contain a definition for 'ExtractMaskedEmail' Line 476: 'Utils' does not contain a definition for 'FormatPhoneNumber' Line 488: 'Utils' does not contain a definition for 'FormatPhoneNumber' Line 523: 'Utils' does not contain a definition for 'FormatPhoneNumber' Line 164: The variable 'e' is declared but never used Line 175: The variable 'e' is declared but never used Line 29: The variable 'chartPrimaryColor' is assigned but its value is never used Line 30: The variable 'chartSecondaryColor' is assigned but its value is never used Line 31: The variable 'chartTertiaryColor' is assigned but its value is never used
1 // <auto-generated/> 2 #pragma warning disable 1591 3 namespace CompiledRazorTemplates.Dynamic 4 { 5 #line hidden 6 using System.Threading.Tasks; 7 using System.Collections.Generic; 8 using System.Linq; 9 using System; 10 using System.Web; 11 using System.Globalization; 12 using RealEstate.User; 13 using RealEstate.Broker; 14 using RealMaeglerne.Library; 15 using RealMaeglerne.Library.Models; 16 using RealMaeglerne.Dynamicweb; 17 using Newtonsoft.Json; 18 using Dynamicweb.Core; 19 internal class RazorEngine_2174a1bed59c47bb9b767b913d7d53ba : Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 20 { 21 #pragma warning disable 1998 22 public async override global::System.Threading.Tasks.Task ExecuteAsync() 23 { 24 WriteLiteral("\r\n"); 25 26 bool BoligOne = false; 27 if (!string.IsNullOrEmpty(Dynamicweb.Frontend.PageView.Current().Area.Item["Type"].ToString()) && Dynamicweb.Frontend.PageView.Current().Area.Item["Type"].ToString().Equals("bone")) { BoligOne = true; } 28 29 var chartPrimaryColor = "rgba(0, 55, 97,1)"; // #003761 30 var chartSecondaryColor = "rgba(150, 121, 73, 1)"; // #967949 31 var chartTertiaryColor = "rgba(76, 73, 74, 1)"; // #4c494a 32 33 if (BoligOne) 34 { 35 chartPrimaryColor = "rgba(178, 7, 26, 1)"; // #b2071a 36 chartSecondaryColor = "rgba(45, 56, 60, 1)"; // #2d383c 37 chartTertiaryColor = "rgba(128, 128, 131, 1)"; // #808083 38 } 39 40 var culture = new System.Globalization.CultureInfo("da-DK"); 41 42 var user = Dynamicweb.Security.UserManagement.User.GetCurrentExtranetUser(); 43 44 bool isBroker = (user.ItemType == "Medarbejder" ? true : false); 45 var ItemModel = RealEstate.Broker.Search.Item(user); 46 47 WriteLiteral("\r\n"); 48 if (Dynamicweb.Security.UserManagement.User.IsExtranetUserLoggedIn()) 49 { 50 51 string SellerString = ""; 52 string[] SplittedIDS = new string[] { }; 53 List<string> butikker = new List<string>(); 54 HashSet<string> godkendteSager = new HashSet<string>(); 55 56 if (!string.IsNullOrEmpty(ItemModel.GetString("Godkendte_Salgsopstillinger"))) 57 { 58 godkendteSager = new HashSet<string>(ItemModel.GetString("Godkendte_Salgsopstillinger").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); 59 } 60 if (!string.IsNullOrEmpty(ItemModel.GetString("SagsNrListe")) || isBroker) 61 { 62 63 if (isBroker) 64 { 65 // Get all relevant butikIds for this user via his groups 66 foreach (var group in user.Groups) 67 { 68 var butikId = group.Item().GetString("CBMedlemsnummer"); 69 if (!String.IsNullOrEmpty(butikId)) 70 { 71 butikker.Add(butikId); 72 } 73 } 74 75 Dynamicweb.Indexing.Querying.IQueryProvider maeglerBoligerQueryProvider = Dynamicweb.Extensibility.ServiceLocator.Current.GetInstance<Dynamicweb.Indexing.IIndexService>().LoadIndex("Boliger", "Boliger.index").GetInstance() as Dynamicweb.Indexing.Querying.IQueryProvider; 76 Dynamicweb.Indexing.Querying.IQuery maeglerBoligerQuery = Dynamicweb.Extensibility.ServiceLocator.Current.GetInstance<Dynamicweb.Indexing.Querying.IQueryService>().LoadQuery("Boliger", "Medarbejderboliger.query"); 77 Dynamicweb.Indexing.Querying.QuerySettings querySettings = new Dynamicweb.Indexing.Querying.QuerySettings(); 78 querySettings.IncludeDebugInfo = true; 79 querySettings.Take = 256; 80 querySettings.Parameters = new Dictionary<string, object>(); 81 /* Do sorting on products collection later on 82 querySettings.SortOrder = new List<Dynamicweb.Indexing.Querying.Sorting.SortInfo>(); 83 Dynamicweb.Indexing.Querying.Sorting.SortInfo si = new Dynamicweb.Indexing.Querying.Sorting.SortInfo(); 84 si.Field = "CustomField_xMarketingFoersteAnnonceringsdato"; 85 si.SortDirection = Dynamicweb.Indexing.Querying.Sorting.SortDirection.Descending; 86 querySettings.SortOrder.Add(si); 87 */ 88 89 querySettings.Parameters.Add("butikker", butikker.ToArray()); 90 91 Dynamicweb.Indexing.Querying.IQueryResult queryResult = null; 92 try 93 { 94 queryResult = maeglerBoligerQueryProvider.Query(maeglerBoligerQuery, querySettings); 95 // SellerString = String.Join(",", queryResult.QueryResult.Select(x => (((Dictionary<string, object>)x)["ID"]).ToString())); 96 SplittedIDS = queryResult.QueryResult.Select(x => (((Dictionary<string, object>)x)["ID"]).ToString()).ToArray(); 97 } 98 catch 99 { 100 // Ignore 101 } 102 } 103 else 104 { 105 SellerString = ItemModel.GetString("SagsNrListe"); 106 SplittedIDS = SellerString.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 107 } 108 109 var Properties = Dynamicweb.Ecommerce.Products.Product.GetProductsByProductIDs(SplittedIDS); 110 var products = Properties.ToList().OrderByDescending(p => p.GetFieldDateTimeValue("xMarketingFoersteAnnonceringsdato")); 111 // .Sort("xMarketingFoersteAnnonceringsdato", Dynamicweb.Ecommerce.Products.SortDirection.Descending); 112 113 BoligManager boligManager = new BoligManager(Pageview); 114 115 if (products.Count() > 0) 116 { 117 WriteLiteral(" <div class=\"container\">\r\n <input type=\"text\" class=\"js-livesearch form-control mitboligsalg-search\""); 118 BeginWriteAttribute("placeholder", " placeholder=\"", 5114, "\"", 5216, 1); 119 WriteAttributeValue("", 5128, Translate("Smartpage:Boligsalg.SearchPlaceholder","Søg efter adresse eller sagsnummer"), 5128, 88, false); 120 EndWriteAttribute(); 121 WriteLiteral(" />\r\n </div>\r\n"); 122 } 123 else 124 { 125 WriteLiteral(" <section><div class=\"container mt-4 mb-4 text-center\"><h4>"); 126 Write(Translate("Smartpage:Mitboligsalg.NoItemsForSale", "Ingen boliger til salg")); 127 WriteLiteral("</h4></div></section>\r\n"); 128 129 } 130 131 WriteLiteral(" <div class=\"sales-items\">\r\n\r\n"); 132 foreach (var p in products) 133 { 134 var bolig = boligManager.CreateBolig(p); 135 string imgUrl = ""; 136 string imgClass = "na"; 137 if (BoligOne) 138 { 139 imgUrl = "/Files/Templates/Designs/rm/assets/images/na-bone.png"; 140 } 141 else 142 { 143 imgUrl = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 144 } 145 if (!String.IsNullOrEmpty(bolig.ImageUrl)) 146 { 147 imgUrl = bolig.ImageUrl; 148 imgClass = ""; 149 } 150 string propCategory = bolig.Ejendomskategori; 151 bool propIsErhverv = bolig.Erhverv; 152 153 int propTypeNr = p.GetFieldIntValue("xEjendomEjendomstypeNr"); 154 155 string altan = p.GetFieldStringValue("xEjendomFaciliteterAltan"); 156 int garageAreal = p.GetFieldIntValue("xEjendomArealerOevrigeArealerGarage") + p.GetFieldIntValue("xEjendomArealerHovedbygningIntegreredeArealerGarage"); 157 158 RealEstate.Broker.Model.BrokerEmployee propBroker = null; 159 var brokerUrl = ""; 160 try 161 { 162 propBroker = RealEstate.Broker.Search.GetEmployee(p.GetProductFieldValue("xButikID").ToString(), p.GetProductFieldValue("xAktoererMaeglerKontaktEmail").ToString()); 163 } 164 catch (Exception e) { } 165 166 string bName = String.Empty; 167 string bEmail = String.Empty; 168 if (propBroker != null) 169 { 170 try 171 { 172 var ItemModelBroker = RealEstate.Broker.Search.Item(propBroker.Broker); 173 brokerUrl = "/" + ItemModelBroker.GetString("CBMedlemsnummer").Substring(1); 174 } 175 catch (Exception e) { } 176 177 bName = propBroker.Broker.Name; 178 if (!String.IsNullOrEmpty(propBroker.Broker.CompanyName)) 179 { 180 bName = propBroker.Broker.CompanyName; 181 } 182 183 var butikId = String.Empty; 184 185 if (propBroker != null && propBroker.Broker != null) 186 { 187 butikId = propBroker.Broker.Item().GetString("CBMedlemsnummer"); 188 bEmail = propBroker.Broker.Item().GetString("Email"); 189 } 190 } 191 var tidligereAabnehuse = boligManager.TidligereAfholdteAabnehuse(bolig); 192 193 string edhFilesAllInOne = p.GetFieldStringValue("xDokumenterEDHHentAlleUrl"); 194 Dictionary<string, string> edhFiles = BoligManager.GetEDHFilesCompact(p); 195 196 WriteLiteral(@" <section class=""clearfix sale-item""> 197 <section class=""my-sales-items bolig-page bolig-list bolig-list-static""> 198 <div class=""container""> 199 <div class=""content""> 200 <div class=""row""> 201 <div class=""col-12""> 202 <h2>"); 203 Write(p.GetFieldStringValue("xEjendomAdresseAdresseLinie")); 204 WriteLiteral("<br>"); 205 Write(p.GetFieldStringValue("xEjendomAdressePostAdresseLinie")); 206 WriteLiteral(@"</h2> 207 </div> 208 </div> 209 <div class=""row""> 210 <div class=""bolig col-md-4""> 211 <div class=""box""> 212 <a"); 213 BeginWriteAttribute("href", " href=\'", 9213, "\'", 9234, 1); 214 WriteAttributeValue("", 9220, bolig.LinkUrl, 9220, 14, false); 215 EndWriteAttribute(); 216 WriteLiteral(" target=\"_blank\">\r\n <div class=\"img-wrapper\">\r\n"); 217 if (!String.IsNullOrEmpty(bolig.Label)) 218 { 219 WriteLiteral(" <div class=\"label\"><b>"); 220 Write(bolig.Label); 221 WriteLiteral("</b></div>\r\n"); 222 } 223 WriteLiteral("\r\n <img"); 224 BeginWriteAttribute("src", " src=\"", 9693, "\"", 9706, 1); 225 WriteAttributeValue("", 9699, imgUrl, 9699, 7, false); 226 EndWriteAttribute(); 227 BeginWriteAttribute("class", " class=\"", 9707, "\"", 9739, 2); 228 WriteAttributeValue("", 9715, "img-responsive", 9715, 14, true); 229 WriteAttributeValue(" ", 9729, imgClass, 9730, 9, false); 230 EndWriteAttribute(); 231 BeginWriteAttribute("alt", " alt=\"", 9740, "\"", 9817, 2); 232 WriteAttributeValue("", 9746, HttpUtility.HtmlAttributeEncode(bolig.Adresse), 9746, 47, false); 233 WriteAttributeValue(" ", 9793, bolig.Ejendomskategori, 9794, 23, false); 234 EndWriteAttribute(); 235 WriteLiteral(" />\r\n </div>\r\n </a>\r\n </div>\r\n"); 236 if (tidligereAabnehuse.Count > 0) 237 { 238 WriteLiteral(" <div class=\"open-houses\">\r\n <b>Tidligere afholdte åbent hus</b>\r\n"); 239 foreach (var item in tidligereAabnehuse) 240 { 241 WriteLiteral(" <p>\r\n "); 242 Write(item.Dag); 243 WriteLiteral(" "); 244 Write(item.DatoFormateret); 245 WriteLiteral(" "); 246 if (!String.IsNullOrEmpty(item.TidspunktFormateret)) 247 { Write(item.TidspunktFormateret); 248 } 249 WriteLiteral(" </p>\r\n"); 250 } 251 WriteLiteral(" </div>\r\n"); 252 } 253 WriteLiteral(@" </div> 254 <div class=""col-md-4""> 255 <h3>Detaljer</h3> 256 <table> 257 <tr> 258 <td>Sagsnummer</td> 259 <td align=""right""><b>"); 260 Write(bolig.Id); 261 WriteLiteral("</b></td>\r\n </tr>\r\n\r\n"); 262 if (!propIsErhverv) 263 { 264 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomBSEjendomstype"))) 265 { 266 WriteLiteral(" <tr>\r\n <td>Boligtype</td>\r\n <td align=\"right\"><b>"); 267 Write(p.GetFieldStringValue("xEjendomBSEjendomstype")); 268 WriteLiteral("</b></td>\r\n </tr>\r\n"); 269 270 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomBSEjendomstypeSupplerende")) && p.GetFieldStringValue("xEjendomBSEjendomstypeSupplerende") != p.GetFieldStringValue("xEjendomBSEjendomstype")) 271 { 272 WriteLiteral(" <tr>\r\n <td>Supplerende boligtype</td>\r\n <td align=\"right\"><b>"); 273 Write(p.GetFieldStringValue("xEjendomBSEjendomstypeSupplerende")); 274 WriteLiteral("</b></td>\r\n </tr>\r\n"); 275 } 276 } 277 if (p.GetFieldIntValue("xEjendomArealerBoligAreal") > 0) 278 { 279 WriteLiteral(" <tr>\r\n <td>Boligareal</td>\r\n <td align=\"right\"><b>"); 280 Write(p.GetFieldStringValue("xEjendomArealerBoligAreal")); 281 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 282 } 283 if (p.GetFieldIntValue("xEjendomArealerGrundArealHA") > 0) 284 { 285 WriteLiteral(" <tr>\r\n <td>Grundareal</td>\r\n <td align=\"right\"><b>"); 286 Write(p.GetFieldIntValue("xEjendomArealerGrundArealHA")); 287 WriteLiteral(" hektar</b></td>\r\n </tr>\r\n"); 288 } 289 else if (p.GetFieldIntValue("xEjendomArealerGrundAreal") > 0) 290 { 291 WriteLiteral(" <tr>\r\n <td>Grundareal</td>\r\n <td align=\"right\"><b>"); 292 Write(p.GetFieldIntValue("xEjendomArealerGrundAreal")); 293 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 294 } 295 if (p.GetFieldIntValue("xEjendomArealerKaelderAreal") > 0) 296 { 297 WriteLiteral(" <tr>\r\n <td>Kælderareal</td>\r\n <td align=\"right\"><b>"); 298 Write(p.GetFieldIntValue("xEjendomArealerKaelderAreal")); 299 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 300 } 301 if (garageAreal > 0) 302 { 303 WriteLiteral(" <tr>\r\n <td>Garage/carport</td>\r\n <td align=\"right\"><b>"); 304 Write(garageAreal); 305 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 306 } 307 if (!String.IsNullOrEmpty(altan) && altan.ToLower() == "true") 308 { 309 WriteLiteral(@" <tr> 310 <td>Altan</td> 311 <td align=""right""><b>Ja</b></td> 312 </tr> 313 "); 314 } 315 if (p.GetFieldIntValue("xEjendomOpfoertAar") != 0) 316 { 317 WriteLiteral(@" <tr> 318 <td>Bygget/ombygget</td> 319 <td align=""right""> 320 <b> 321 "); 322 Write(p.GetFieldIntValue("xEjendomOpfoertAar")); 323 WriteLiteral("\r\n"); 324 if (p.GetFieldIntValue("xEjendomOmbyggetAar") != 0) 325 {WriteLiteral(" / "); 326 Write(p.GetFieldIntValue("xEjendomOmbyggetAar")); 327 } 328 WriteLiteral(" </b>\r\n </td>\r\n </tr>\r\n"); 329 } 330 if (p.GetFieldIntValue("xEjendomArealerVaerelser") != 0) 331 { 332 WriteLiteral(" <tr>\r\n <td>Antal rum</td>\r\n <td align=\"right\"><b>"); 333 Write(p.GetFieldStringValue("xEjendomArealerVaerelser")); 334 WriteLiteral(" </b></td>\r\n </tr>\r\n"); 335 } 336 if (p.GetFieldIntValue("xEjendomArealerEtager") != 0) 337 { 338 WriteLiteral(" <tr>\r\n <td>Etager</td>\r\n <td align=\"right\"><b>"); 339 Write(p.GetFieldStringValue("xEjendomArealerEtager")); 340 WriteLiteral("</b></td>\r\n </tr>\r\n"); 341 } 342 } 343 else 344 { 345 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEjendomstype"))) 346 { 347 WriteLiteral(@" <tr> 348 <td>Ejendomstype</td> 349 <td align=""right""> 350 <b> 351 "); 352 Write(p.GetFieldStringValue("xEjendomEjendomstype")); 353 WriteLiteral("\r\n"); 354 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEjendomstypeSupplerende"))) 355 {WriteLiteral(" / "); 356 Write(p.GetFieldStringValue("xEjendomEjendomstypeSupplerende")); 357 } 358 WriteLiteral(" </b>\r\n </td>\r\n </tr>\r\n"); 359 } 360 if (p.GetFieldStringValue("xUdbudsForm") == "Salg" && p.GetFieldIntValue("xEjendomArealerErhvervAreal") > 0) 361 { 362 WriteLiteral(" <tr>\r\n <td>Erhvervsareal</td>\r\n <td align=\"right\"><b>"); 363 Write(p.GetFieldStringValue("xEjendomArealerErhvervAreal")); 364 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 365 } 366 else if (p.GetFieldStringValue("xUdbudsForm") == "Leje" && p.GetFieldIntValue("xEjendomArealerEtageAreal") > 0) 367 { 368 WriteLiteral(" <tr>\r\n <td>Erhvervsareal</td>\r\n <td align=\"right\"><b>"); 369 Write(p.GetFieldStringValue("xEjendomArealerEtageAreal")); 370 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 371 } 372 if (propTypeNr == 12) 373 { 374 WriteLiteral(" <tr>\r\n <td>Boligareal</td>\r\n <td align=\"right\"><b>"); 375 Write(p.GetFieldStringValue("xEjendomArealerBoligAreal")); 376 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 377 } 378 if (p.GetFieldIntValue("xEjendomArealerGrundArealHA") > 0) 379 { 380 WriteLiteral(" <tr>\r\n <td>Grund</td>\r\n <td align=\"right\"><b>"); 381 Write(p.GetFieldIntValue("xEjendomArealerGrundArealHA")); 382 WriteLiteral(" hektar</b></td>\r\n </tr>\r\n"); 383 } 384 else if (p.GetFieldIntValue("xEjendomArealerGrundAreal") > 0) 385 { 386 WriteLiteral(" <tr>\r\n <td>Grund</td>\r\n <td align=\"right\"><b>"); 387 Write(p.GetFieldIntValue("xEjendomArealerGrundAreal")); 388 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 389 } 390 if (p.GetFieldIntValue("xEjendomOpfoertAar") != 0) 391 { 392 WriteLiteral(@" <tr> 393 <td>Bygget/ombygget</td> 394 <td align=""right""> 395 <b> 396 "); 397 Write(p.GetFieldIntValue("xEjendomOpfoertAar")); 398 WriteLiteral("\r\n"); 399 if (p.GetFieldIntValue("xEjendomOmbyggetAar") != 0) 400 {WriteLiteral(" / "); 401 Write(p.GetFieldIntValue("xEjendomOmbyggetAar")); 402 } 403 WriteLiteral(" </b>\r\n </td>\r\n </tr>\r\n"); 404 } 405 } 406 WriteLiteral(" <tr>\r\n <td> </td>\r\n <td align=\"right\"> </td>\r\n </tr>\r\n"); 407 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEnergiklassifikation")) && !propIsErhverv) 408 { 409 WriteLiteral(@" <tr> 410 <td>Energimærke</td> 411 <td align=""right""> 412 <div class=""energylabel"" data-energylabel="""); 413 Write(p.GetFieldStringValue("xEjendomEnergiklassifikation")); 414 WriteLiteral("\"></div>\r\n </td>\r\n </tr>\r\n"); 415 } 416 WriteLiteral(" </table>\r\n </div>\r\n <div class=\"col-md-4\">\r\n\r\n <h3>Mægler</h3>\r\n"); 417 if (propBroker != null) 418 { 419 string eImg = ""; 420 string bClass = "col-12"; 421 if (propBroker.Employee != null) 422 { 423 string image = propBroker.Employee.Item().GetString("Portrait1000"); 424 if (!String.IsNullOrEmpty(image)) 425 { 426 eImg = image; 427 bClass = "col-7"; 428 } 429 } 430 WriteLiteral(" <div class=\"row\">\r\n"); 431 if (!String.IsNullOrEmpty(eImg)) 432 { 433 WriteLiteral(" <div class=\"col-5\">\r\n <a"); 434 BeginWriteAttribute("href", " href=\"", 25565, "\"", 25582, 1); 435 WriteAttributeValue("", 25572, brokerUrl, 25572, 10, false); 436 EndWriteAttribute(); 437 WriteLiteral(">\r\n"); 438 439 //PushPromise(eImg); 440 WriteLiteral(" <img"); 441 BeginWriteAttribute("src", " src=\"", 25863, "\"", 25874, 1); 442 WriteAttributeValue("", 25869, eImg, 25869, 5, false); 443 EndWriteAttribute(); 444 WriteLiteral(" class=\"img-responsive\" />\r\n </a>\r\n </div>"); 445 } 446 WriteLiteral(" <div"); 447 BeginWriteAttribute("class", " class=\"", 26078, "\"", 26093, 1); 448 WriteAttributeValue("", 26086, bClass, 26086, 7, false); 449 EndWriteAttribute(); 450 WriteLiteral(">\r\n <p>\r\n"); 451 if (propBroker.Employee != null) 452 { 453 WriteLiteral(" <b>"); 454 Write(propBroker.Employee.Name); 455 WriteLiteral("</b><br>\r\n"); 456 if (!String.IsNullOrEmpty(propBroker.Employee.Email)) 457 { 458 WriteLiteral("Mail: <a"); 459 BeginWriteAttribute("href", " href=\"", 26660, "\"", 26728, 2); 460 WriteAttributeValue("", 26667, "mailto:", 26667, 7, true); 461 WriteAttributeValue("", 26674, Utils.ExtractMaskedEmail(propBroker.Employee.Email), 26674, 54, false); 462 EndWriteAttribute(); 463 WriteLiteral(">"); 464 Write(Utils.ExtractMaskedEmail(propBroker.Employee.Email)); 465 WriteLiteral("</a><br>"); 466 467 } 468 if (!String.IsNullOrEmpty(propBroker.Employee.PhoneMobile)) 469 { 470 WriteLiteral("Tlf.: <a"); 471 BeginWriteAttribute("href", " href=\"", 27124, "\"", 27169, 2); 472 WriteAttributeValue("", 27131, "tel:", 27131, 4, true); 473 WriteAttributeValue("", 27135, propBroker.Employee.PhoneMobile, 27135, 34, false); 474 EndWriteAttribute(); 475 WriteLiteral(">"); 476 Write(Utils.FormatPhoneNumber(propBroker.Employee.PhoneMobile)); 477 WriteLiteral("</a><br>"); 478 479 } 480 else if (!String.IsNullOrEmpty(propBroker.Broker.Telephone)) 481 { 482 WriteLiteral("Tlf.: <a"); 483 BeginWriteAttribute("href", " href=\"", 27571, "\"", 27612, 2); 484 WriteAttributeValue("", 27578, "tel:", 27578, 4, true); 485 WriteAttributeValue("", 27582, propBroker.Broker.Telephone, 27582, 30, false); 486 EndWriteAttribute(); 487 WriteLiteral(">"); 488 Write(Utils.FormatPhoneNumber(propBroker.Broker.Telephone)); 489 WriteLiteral("</a><br>"); 490 491 } 492 WriteLiteral(" <br>\r\n"); 493 } 494 WriteLiteral(" <b>"); 495 Write(bName); 496 WriteLiteral("</b><br>\r\n "); 497 Write(propBroker.Broker.Address); 498 WriteLiteral("<br>\r\n "); 499 Write(propBroker.Broker.ZipCode); 500 WriteLiteral(" "); 501 Write(propBroker.Broker.City); 502 WriteLiteral("<br>\r\n"); 503 if (!String.IsNullOrEmpty(bEmail)) 504 { 505 WriteLiteral("Mail: <a"); 506 BeginWriteAttribute("href", " href=\"", 28373, "\"", 28396, 2); 507 WriteAttributeValue("", 28380, "mailto:", 28380, 7, true); 508 WriteAttributeValue("", 28387, bEmail, 28387, 9, false); 509 EndWriteAttribute(); 510 WriteLiteral(">"); 511 Write(bEmail); 512 WriteLiteral("</a><br />"); 513 514 } 515 if (!String.IsNullOrEmpty(propBroker.Broker.Telephone)) 516 { 517 WriteLiteral("Tlf.: <a"); 518 BeginWriteAttribute("href", " href=\"", 28732, "\"", 28773, 2); 519 WriteAttributeValue("", 28739, "tel:", 28739, 4, true); 520 WriteAttributeValue("", 28743, propBroker.Broker.Telephone, 28743, 30, false); 521 EndWriteAttribute(); 522 WriteLiteral(">"); 523 Write(Utils.FormatPhoneNumber(propBroker.Broker.Telephone)); 524 WriteLiteral("</a><br />"); 525 526 } 527 WriteLiteral(" </p>\r\n </div>\r\n </div>\r\n"); 528 } 529 else 530 { 531 WriteLiteral(" <div class=\"row\">\r\n Denne bolig har ingen mægler tilkoblet.\r\n </div>\r\n"); 532 } 533 WriteLiteral(" </div>\r\n </div>\r\n\r\n"); 534 if (!String.IsNullOrEmpty(edhFilesAllInOne)) 535 { 536 WriteLiteral(@" <div class=""row""> 537 <div class=""col-md-4 hidden-xs""> </div> 538 <div class=""downloads col-md-8""> 539 <h3>Dokumenter</h3> 540 <table> 541 "); 542 foreach (var item in edhFiles) 543 { 544 if (item.Value.ToLower() == "salgsopstilling") 545 { 546 WriteLiteral(" <tr>\r\n"); 547 if (propIsErhverv) 548 { 549 WriteLiteral(" <td>\r\n <a"); 550 BeginWriteAttribute("href", " href=\"", 30619, "\"", 30635, 1); 551 WriteAttributeValue("", 30626, item.Key, 30626, 9, false); 552 EndWriteAttribute(); 553 WriteLiteral(" class=\"downloads-link\" target=\"_blank\">Salgsprospekt</a>\r\n </td>\r\n"); 554 } 555 else 556 { 557 WriteLiteral(" <td>\r\n <a"); 558 BeginWriteAttribute("href", " href=\"", 31098, "\"", 31114, 1); 559 WriteAttributeValue("", 31105, item.Key, 31105, 9, false); 560 EndWriteAttribute(); 561 WriteLiteral(" class=\"downloads-link\" target=\"_blank\">"); 562 Write(item.Value); 563 WriteLiteral("</a>\r\n </td>\r\n"); 564 } 565 WriteLiteral(" </tr>\r\n"); 566 567 } 568 else 569 { 570 WriteLiteral(" <tr>\r\n <td colspan=\"2\">\r\n <a"); 571 BeginWriteAttribute("href", " href=\"", 33220, "\"", 33236, 1); 572 WriteAttributeValue("", 33227, item.Key, 33227, 9, false); 573 EndWriteAttribute(); 574 WriteLiteral(" class=\"downloads-link\" target=\"_blank\">"); 575 Write(item.Value); 576 WriteLiteral("</a>\r\n </td>\r\n </tr>\r\n"); 577 } 578 } 579 WriteLiteral(" </table>\r\n </div>\r\n </div>\r\n"); 580 } 581 WriteLiteral(" </div>\r\n </div>\r\n\r\n\r\n\r\n"); 582 583 Dynamicweb.Content.PageService a = new Dynamicweb.Content.PageService(); 584 var pageID = 0; 585 586 var page = a.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, "UserSaleItemsNavigationTag"); 587 588 if (page != null) 589 { 590 pageID = page.ID; 591 } 592 593 WriteLiteral("\r\n <input type=\"hidden\" class=\"js-GraphPageAjax\""); 594 BeginWriteAttribute("value", " value=\"", 34367, "\"", 34398, 2); 595 WriteAttributeValue("", 34375, "Default.aspx?id=", 34375, 16, true); 596 WriteAttributeValue("", 34391, pageID, 34391, 7, false); 597 EndWriteAttribute(); 598 WriteLiteral(">\r\n\r\n <section"); 599 BeginWriteAttribute("id", " id=\"", 34436, "\"", 34460, 2); 600 WriteAttributeValue("", 34441, "property", 34441, 8, true); 601 WriteAttributeValue("", 34449, bolig.Id, 34449, 11, false); 602 EndWriteAttribute(); 603 WriteLiteral(" class=\"my-sales-items-statistic myData js-chart-container\" data-id=\""); 604 Write(bolig.Id); 605 WriteLiteral("\">\r\n <div class=\"container\">\r\n\r\n <div"); 606 BeginWriteAttribute("id", " id=\"", 34636, "\"", 34667, 2); 607 WriteAttributeValue("", 34641, "js-insert-Graph", 34641, 15, true); 608 WriteAttributeValue("", 34656, bolig.Id, 34656, 11, false); 609 EndWriteAttribute(); 610 WriteLiteral(">\r\n <div hidden class=\"acc-toggle loading-text\">"); 611 Write(Translate("Smartpage.Graphloadingtext", "Vent venligst...")); 612 WriteLiteral("</div>\r\n </div>\r\n\r\n <div class=\"acc-toggle-container row\">\r\n <div"); 613 BeginWriteAttribute("class", " class=\"", 34973, "\"", 35026, 4); 614 WriteAttributeValue("", 34981, "loading", 34981, 7, true); 615 WriteAttributeValue("", 34988, bolig.Id, 34988, 11, false); 616 WriteAttributeValue(" ", 34999, "acc-toggle", 35000, 11, true); 617 WriteAttributeValue(" ", 35010, "js-toggle-chart", 35011, 16, true); 618 EndWriteAttribute(); 619 WriteLiteral(" data-propertyID=\""); 620 Write(p.Id); 621 WriteLiteral("\" data-houseID=\""); 622 Write(bolig.Id); 623 WriteLiteral("\" data-productFieldValueAddress=\""); 624 Write(Dynamicweb.Core.Converter.ToString(p.GetProductFieldValue("xEjendomAdresseAdresseLinie"))); 625 WriteLiteral(@""" data-acc-label-loading=""Hej"" data-acc-label-hide=""Skjul statistik"" data-acc-label-show=""Vis statistik"">Vis statistik</div> 626 627 </div> 628 </div> 629 </section> 630 631 </section> 632 </section> 633 "); 634 635 } 636 WriteLiteral("\r\n <section class=\"no-sales-items\"><div class=\"container mt-4 mb-4 text-center\"><h4>"); 637 Write(Translate("Smartpage:Mitboligsalg.NoSearch", "Din søgning havde ikke resultater")); 638 WriteLiteral("</h4></div></section>\r\n\r\n\r\n </div>\r\n"); 639 } 640 } 641 } 642 #pragma warning restore 1998 643 } 644 } 645 #pragma warning restore 1591 646
1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using System 3 @using System.Web 4 @using System.Globalization; 5 @using RealEstate.User; 6 @using RealEstate.Broker; 7 @using RealMaeglerne.Library; 8 @using RealMaeglerne.Library.Models; 9 @using RealMaeglerne.Dynamicweb; 10 @using Newtonsoft.Json; 11 @using Dynamicweb.Core; 12 13 @{ 14 bool BoligOne = false; 15 if (!string.IsNullOrEmpty(Dynamicweb.Frontend.PageView.Current().Area.Item["Type"].ToString()) && Dynamicweb.Frontend.PageView.Current().Area.Item["Type"].ToString().Equals("bone")) { BoligOne = true; } 16 17 var chartPrimaryColor = "rgba(0, 55, 97,1)"; // #003761 18 var chartSecondaryColor = "rgba(150, 121, 73, 1)"; // #967949 19 var chartTertiaryColor = "rgba(76, 73, 74, 1)"; // #4c494a 20 21 if (BoligOne) 22 { 23 chartPrimaryColor = "rgba(178, 7, 26, 1)"; // #b2071a 24 chartSecondaryColor = "rgba(45, 56, 60, 1)"; // #2d383c 25 chartTertiaryColor = "rgba(128, 128, 131, 1)"; // #808083 26 } 27 28 var culture = new System.Globalization.CultureInfo("da-DK"); 29 30 var user = Dynamicweb.Security.UserManagement.User.GetCurrentExtranetUser(); 31 32 bool isBroker = (user.ItemType == "Medarbejder" ? true : false); 33 var ItemModel = RealEstate.Broker.Search.Item(user); 34 35 } 36 37 @if (Dynamicweb.Security.UserManagement.User.IsExtranetUserLoggedIn()) 38 { 39 40 string SellerString = ""; 41 string[] SplittedIDS = new string[] { }; 42 List<string> butikker = new List<string>(); 43 HashSet<string> godkendteSager = new HashSet<string>(); 44 45 if (!string.IsNullOrEmpty(ItemModel.GetString("Godkendte_Salgsopstillinger"))) 46 { 47 godkendteSager = new HashSet<string>(ItemModel.GetString("Godkendte_Salgsopstillinger").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); 48 } 49 if (!string.IsNullOrEmpty(ItemModel.GetString("SagsNrListe")) || isBroker) 50 { 51 52 if (isBroker) 53 { 54 // Get all relevant butikIds for this user via his groups 55 foreach (var group in user.Groups) 56 { 57 var butikId = group.Item().GetString("CBMedlemsnummer"); 58 if (!String.IsNullOrEmpty(butikId)) 59 { 60 butikker.Add(butikId); 61 } 62 } 63 64 Dynamicweb.Indexing.Querying.IQueryProvider maeglerBoligerQueryProvider = Dynamicweb.Extensibility.ServiceLocator.Current.GetInstance<Dynamicweb.Indexing.IIndexService>().LoadIndex("Boliger", "Boliger.index").GetInstance() as Dynamicweb.Indexing.Querying.IQueryProvider; 65 Dynamicweb.Indexing.Querying.IQuery maeglerBoligerQuery = Dynamicweb.Extensibility.ServiceLocator.Current.GetInstance<Dynamicweb.Indexing.Querying.IQueryService>().LoadQuery("Boliger", "Medarbejderboliger.query"); 66 Dynamicweb.Indexing.Querying.QuerySettings querySettings = new Dynamicweb.Indexing.Querying.QuerySettings(); 67 querySettings.IncludeDebugInfo = true; 68 querySettings.Take = 256; 69 querySettings.Parameters = new Dictionary<string, object>(); 70 /* Do sorting on products collection later on 71 querySettings.SortOrder = new List<Dynamicweb.Indexing.Querying.Sorting.SortInfo>(); 72 Dynamicweb.Indexing.Querying.Sorting.SortInfo si = new Dynamicweb.Indexing.Querying.Sorting.SortInfo(); 73 si.Field = "CustomField_xMarketingFoersteAnnonceringsdato"; 74 si.SortDirection = Dynamicweb.Indexing.Querying.Sorting.SortDirection.Descending; 75 querySettings.SortOrder.Add(si); 76 */ 77 78 querySettings.Parameters.Add("butikker", butikker.ToArray()); 79 80 Dynamicweb.Indexing.Querying.IQueryResult queryResult = null; 81 try 82 { 83 queryResult = maeglerBoligerQueryProvider.Query(maeglerBoligerQuery, querySettings); 84 // SellerString = String.Join(",", queryResult.QueryResult.Select(x => (((Dictionary<string, object>)x)["ID"]).ToString())); 85 SplittedIDS = queryResult.QueryResult.Select(x => (((Dictionary<string, object>)x)["ID"]).ToString()).ToArray(); 86 } 87 catch 88 { 89 // Ignore 90 } 91 } 92 else 93 { 94 SellerString = ItemModel.GetString("SagsNrListe"); 95 SplittedIDS = SellerString.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 96 } 97 98 var Properties = Dynamicweb.Ecommerce.Products.Product.GetProductsByProductIDs(SplittedIDS); 99 var products = Properties.ToList().OrderByDescending(p => p.GetFieldDateTimeValue("xMarketingFoersteAnnonceringsdato")); 100 // .Sort("xMarketingFoersteAnnonceringsdato", Dynamicweb.Ecommerce.Products.SortDirection.Descending); 101 102 BoligManager boligManager = new BoligManager(Pageview); 103 104 if (products.Count() > 0) 105 { 106 <div class="container"> 107 <input type="text" class="js-livesearch form-control mitboligsalg-search" placeholder="@Translate("Smartpage:Boligsalg.SearchPlaceholder","Søg efter adresse eller sagsnummer")" /> 108 </div> 109 } 110 else 111 { 112 <section><div class="container mt-4 mb-4 text-center"><h4>@Translate("Smartpage:Mitboligsalg.NoItemsForSale", "Ingen boliger til salg")</h4></div></section> 113 114 } 115 116 <div class="sales-items"> 117 118 @foreach (var p in products) 119 { 120 var bolig = boligManager.CreateBolig(p); 121 string imgUrl = ""; 122 string imgClass = "na"; 123 if (BoligOne) 124 { 125 imgUrl = "/Files/Templates/Designs/rm/assets/images/na-bone.png"; 126 } 127 else 128 { 129 imgUrl = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 130 } 131 if (!String.IsNullOrEmpty(bolig.ImageUrl)) 132 { 133 imgUrl = bolig.ImageUrl; 134 imgClass = ""; 135 } 136 string propCategory = bolig.Ejendomskategori; 137 bool propIsErhverv = bolig.Erhverv; 138 139 int propTypeNr = p.GetFieldIntValue("xEjendomEjendomstypeNr"); 140 141 string altan = p.GetFieldStringValue("xEjendomFaciliteterAltan"); 142 int garageAreal = p.GetFieldIntValue("xEjendomArealerOevrigeArealerGarage") + p.GetFieldIntValue("xEjendomArealerHovedbygningIntegreredeArealerGarage"); 143 144 RealEstate.Broker.Model.BrokerEmployee propBroker = null; 145 var brokerUrl = ""; 146 try 147 { 148 propBroker = RealEstate.Broker.Search.GetEmployee(p.GetProductFieldValue("xButikID").ToString(), p.GetProductFieldValue("xAktoererMaeglerKontaktEmail").ToString()); 149 } 150 catch (Exception e) { } 151 152 string bName = String.Empty; 153 string bEmail = String.Empty; 154 if (propBroker != null) 155 { 156 try 157 { 158 var ItemModelBroker = RealEstate.Broker.Search.Item(propBroker.Broker); 159 brokerUrl = "/" + ItemModelBroker.GetString("CBMedlemsnummer").Substring(1); 160 } 161 catch (Exception e) { } 162 163 bName = propBroker.Broker.Name; 164 if (!String.IsNullOrEmpty(propBroker.Broker.CompanyName)) 165 { 166 bName = propBroker.Broker.CompanyName; 167 } 168 169 var butikId = String.Empty; 170 171 if (propBroker != null && propBroker.Broker != null) 172 { 173 butikId = propBroker.Broker.Item().GetString("CBMedlemsnummer"); 174 bEmail = propBroker.Broker.Item().GetString("Email"); 175 } 176 } 177 var tidligereAabnehuse = boligManager.TidligereAfholdteAabnehuse(bolig); 178 179 string edhFilesAllInOne = p.GetFieldStringValue("xDokumenterEDHHentAlleUrl"); 180 Dictionary<string, string> edhFiles = BoligManager.GetEDHFilesCompact(p); 181 182 <section class="clearfix sale-item"> 183 <section class="my-sales-items bolig-page bolig-list bolig-list-static"> 184 <div class="container"> 185 <div class="content"> 186 <div class="row"> 187 <div class="col-12"> 188 <h2>@p.GetFieldStringValue("xEjendomAdresseAdresseLinie")<br>@p.GetFieldStringValue("xEjendomAdressePostAdresseLinie")</h2> 189 </div> 190 </div> 191 <div class="row"> 192 <div class="bolig col-md-4"> 193 <div class="box"> 194 <a href='@bolig.LinkUrl' target="_blank"> 195 <div class="img-wrapper"> 196 @if (!String.IsNullOrEmpty(bolig.Label)) 197 { 198 <div class="label"><b>@bolig.Label</b></div> 199 } 200 201 <img src="@imgUrl" class="img-responsive @imgClass" alt="@HttpUtility.HtmlAttributeEncode(bolig.Adresse) @bolig.Ejendomskategori" /> 202 </div> 203 </a> 204 </div> 205 @if (tidligereAabnehuse.Count > 0) 206 { 207 <div class="open-houses"> 208 <b>Tidligere afholdte åbent hus</b> 209 @foreach (var item in tidligereAabnehuse) 210 { 211 <p> 212 @item.Dag @item.DatoFormateret @if (!String.IsNullOrEmpty(item.TidspunktFormateret)) 213 {<text>@item.TidspunktFormateret</text>} 214 </p> 215 } 216 </div> 217 } 218 </div> 219 <div class="col-md-4"> 220 <h3>Detaljer</h3> 221 <table> 222 <tr> 223 <td>Sagsnummer</td> 224 <td align="right"><b>@bolig.Id</b></td> 225 </tr> 226 227 @if (!propIsErhverv) 228 { 229 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomBSEjendomstype"))) 230 { 231 <tr> 232 <td>Boligtype</td> 233 <td align="right"><b>@p.GetFieldStringValue("xEjendomBSEjendomstype")</b></td> 234 </tr> 235 236 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomBSEjendomstypeSupplerende")) && p.GetFieldStringValue("xEjendomBSEjendomstypeSupplerende") != p.GetFieldStringValue("xEjendomBSEjendomstype")) 237 { 238 <tr> 239 <td>Supplerende boligtype</td> 240 <td align="right"><b>@p.GetFieldStringValue("xEjendomBSEjendomstypeSupplerende")</b></td> 241 </tr> 242 } 243 } 244 if (p.GetFieldIntValue("xEjendomArealerBoligAreal") > 0) 245 { 246 <tr> 247 <td>Boligareal</td> 248 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerBoligAreal") m<sup>2</sup></b></td> 249 </tr> 250 } 251 if (p.GetFieldIntValue("xEjendomArealerGrundArealHA") > 0) 252 { 253 <tr> 254 <td>Grundareal</td> 255 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerGrundArealHA") hektar</b></td> 256 </tr> 257 } 258 else if (p.GetFieldIntValue("xEjendomArealerGrundAreal") > 0) 259 { 260 <tr> 261 <td>Grundareal</td> 262 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerGrundAreal") m<sup>2</sup></b></td> 263 </tr> 264 } 265 if (p.GetFieldIntValue("xEjendomArealerKaelderAreal") > 0) 266 { 267 <tr> 268 <td>Kælderareal</td> 269 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerKaelderAreal") m<sup>2</sup></b></td> 270 </tr> 271 } 272 if (garageAreal > 0) 273 { 274 <tr> 275 <td>Garage/carport</td> 276 <td align="right"><b>@garageAreal m<sup>2</sup></b></td> 277 </tr> 278 } 279 if (!String.IsNullOrEmpty(altan) && altan.ToLower() == "true") 280 { 281 <tr> 282 <td>Altan</td> 283 <td align="right"><b>Ja</b></td> 284 </tr> 285 } 286 if (p.GetFieldIntValue("xEjendomOpfoertAar") != 0) 287 { 288 <tr> 289 <td>Bygget/ombygget</td> 290 <td align="right"> 291 <b> 292 @p.GetFieldIntValue("xEjendomOpfoertAar") 293 @if (p.GetFieldIntValue("xEjendomOmbyggetAar") != 0) 294 {<text> / @p.GetFieldIntValue("xEjendomOmbyggetAar")</text>} 295 </b> 296 </td> 297 </tr> 298 } 299 if (p.GetFieldIntValue("xEjendomArealerVaerelser") != 0) 300 { 301 <tr> 302 <td>Antal rum</td> 303 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerVaerelser") </b></td> 304 </tr> 305 } 306 if (p.GetFieldIntValue("xEjendomArealerEtager") != 0) 307 { 308 <tr> 309 <td>Etager</td> 310 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerEtager")</b></td> 311 </tr> 312 } 313 } 314 else 315 { 316 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEjendomstype"))) 317 { 318 <tr> 319 <td>Ejendomstype</td> 320 <td align="right"> 321 <b> 322 @p.GetFieldStringValue("xEjendomEjendomstype") 323 @if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEjendomstypeSupplerende"))) 324 {<text> / @p.GetFieldStringValue("xEjendomEjendomstypeSupplerende")</text>} 325 </b> 326 </td> 327 </tr> 328 } 329 if (p.GetFieldStringValue("xUdbudsForm") == "Salg" && p.GetFieldIntValue("xEjendomArealerErhvervAreal") > 0) 330 { 331 <tr> 332 <td>Erhvervsareal</td> 333 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerErhvervAreal") m<sup>2</sup></b></td> 334 </tr> 335 } 336 else if (p.GetFieldStringValue("xUdbudsForm") == "Leje" && p.GetFieldIntValue("xEjendomArealerEtageAreal") > 0) 337 { 338 <tr> 339 <td>Erhvervsareal</td> 340 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerEtageAreal") m<sup>2</sup></b></td> 341 </tr> 342 } 343 if (propTypeNr == 12) 344 { 345 <tr> 346 <td>Boligareal</td> 347 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerBoligAreal") m<sup>2</sup></b></td> 348 </tr> 349 } 350 if (p.GetFieldIntValue("xEjendomArealerGrundArealHA") > 0) 351 { 352 <tr> 353 <td>Grund</td> 354 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerGrundArealHA") hektar</b></td> 355 </tr> 356 } 357 else if (p.GetFieldIntValue("xEjendomArealerGrundAreal") > 0) 358 { 359 <tr> 360 <td>Grund</td> 361 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerGrundAreal") m<sup>2</sup></b></td> 362 </tr> 363 } 364 if (p.GetFieldIntValue("xEjendomOpfoertAar") != 0) 365 { 366 <tr> 367 <td>Bygget/ombygget</td> 368 <td align="right"> 369 <b> 370 @p.GetFieldIntValue("xEjendomOpfoertAar") 371 @if (p.GetFieldIntValue("xEjendomOmbyggetAar") != 0) 372 {<text> / @p.GetFieldIntValue("xEjendomOmbyggetAar")</text>} 373 </b> 374 </td> 375 </tr> 376 } 377 } 378 <tr> 379 <td> </td> 380 <td align="right"> </td> 381 </tr> 382 @if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEnergiklassifikation")) && !propIsErhverv) 383 { 384 <tr> 385 <td>Energimærke</td> 386 <td align="right"> 387 <div class="energylabel" data-energylabel="@p.GetFieldStringValue("xEjendomEnergiklassifikation")"></div> 388 </td> 389 </tr> 390 } 391 </table> 392 </div> 393 <div class="col-md-4"> 394 395 <h3>Mægler</h3> 396 @if (propBroker != null) 397 { 398 string eImg = ""; 399 string bClass = "col-12"; 400 if (propBroker.Employee != null) 401 { 402 string image = propBroker.Employee.Item().GetString("Portrait1000"); 403 if (!String.IsNullOrEmpty(image)) 404 { 405 eImg = image; 406 bClass = "col-7"; 407 } 408 } 409 <div class="row"> 410 @if (!String.IsNullOrEmpty(eImg)) 411 { 412 <div class="col-5"> 413 <a href="@brokerUrl"> 414 @{ 415 //PushPromise(eImg); 416 } 417 <img src="@eImg" class="img-responsive" /> 418 </a> 419 </div>} 420 <div class="@bClass"> 421 <p> 422 @if (propBroker.Employee != null) 423 { 424 <b>@(propBroker.Employee.Name)</b><br> 425 if (!String.IsNullOrEmpty(propBroker.Employee.Email)) 426 { 427 <text>Mail: <a href="mailto:@(Utils.ExtractMaskedEmail(propBroker.Employee.Email))">@Utils.ExtractMaskedEmail(propBroker.Employee.Email)</a><br></text> 428 } 429 if (!String.IsNullOrEmpty(propBroker.Employee.PhoneMobile)) 430 { 431 <text>Tlf.: <a href="tel:@(propBroker.Employee.PhoneMobile)">@Utils.FormatPhoneNumber(propBroker.Employee.PhoneMobile)</a><br></text> 432 } 433 else if (!String.IsNullOrEmpty(propBroker.Broker.Telephone)) 434 { 435 <text>Tlf.: <a href="tel:@(propBroker.Broker.Telephone)">@Utils.FormatPhoneNumber(propBroker.Broker.Telephone)</a><br></text> 436 } 437 <br> 438 } 439 <b>@bName</b><br> 440 @propBroker.Broker.Address<br> 441 @propBroker.Broker.ZipCode @propBroker.Broker.City<br> 442 @if (!String.IsNullOrEmpty(bEmail)) 443 { 444 <text>Mail: <a href="mailto:@(bEmail)">@(bEmail)</a><br /></text> 445 } 446 @if (!String.IsNullOrEmpty(propBroker.Broker.Telephone)) 447 { 448 <text>Tlf.: <a href="tel:@(propBroker.Broker.Telephone)">@(Utils.FormatPhoneNumber(propBroker.Broker.Telephone))</a><br /></text> 449 } 450 </p> 451 </div> 452 </div> 453 } 454 else 455 { 456 <div class="row"> 457 Denne bolig har ingen mægler tilkoblet. 458 </div> 459 } 460 </div> 461 </div> 462 463 @if (!String.IsNullOrEmpty(edhFilesAllInOne)) 464 { 465 <div class="row"> 466 <div class="col-md-4 hidden-xs"> </div> 467 <div class="downloads col-md-8"> 468 <h3>Dokumenter</h3> 469 <table> 470 @foreach (var item in edhFiles) 471 { 472 if (item.Value.ToLower() == "salgsopstilling") 473 { 474 <tr> 475 @if (propIsErhverv) 476 { 477 <td> 478 <a href="@item.Key" class="downloads-link" target="_blank">Salgsprospekt</a> 479 </td> 480 } 481 else 482 { 483 <td> 484 <a href="@item.Key" class="downloads-link" target="_blank">@item.Value</a> 485 </td> 486 } 487 @*<td align="right"> 488 @if (godkendteSager.Contains(bolig.Id)) 489 { 490 <button type="button" class="btn btn-secondary downloads-approve-btn" data-sagsnr="@bolig.Id" data-brugerid="@user.ID" disabled="disabled">Er godkendt</button> 491 } 492 else 493 { 494 <button type="button" class="btn btn-primary downloads-approve-btn" data-sagsnr="@bolig.Id" data-brugerid="@user.ID">Godkend</button> 495 } 496 </td>*@ 497 </tr> 498 @*<tr> 499 <td colspan="2"> 500 <span class="downloads-notice">* hvis du ikke kan godkende salgsopstillingen skal du kontakte din mægler</span> 501 </td> 502 </tr>*@ 503 } 504 else 505 { 506 <tr> 507 <td colspan="2"> 508 <a href="@item.Key" class="downloads-link" target="_blank">@item.Value</a> 509 </td> 510 </tr> 511 } 512 } 513 </table> 514 </div> 515 </div> 516 } 517 </div> 518 </div> 519 520 521 522 @{ 523 Dynamicweb.Content.PageService a = new Dynamicweb.Content.PageService(); 524 var pageID = 0; 525 526 var page = a.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, "UserSaleItemsNavigationTag"); 527 528 if (page != null) 529 { 530 pageID = page.ID; 531 } 532 533 } 534 535 <input type="hidden" class="js-GraphPageAjax" value="Default.aspx?id=@pageID"> 536 537 <section id="property@(bolig.Id)" class="my-sales-items-statistic myData js-chart-container" data-id="@(bolig.Id)"> 538 <div class="container"> 539 540 <div id="js-insert-Graph@(bolig.Id)"> 541 <div hidden class="acc-toggle loading-text">@Translate("Smartpage.Graphloadingtext", "Vent venligst...")</div> 542 </div> 543 544 <div class="acc-toggle-container row"> 545 <div class="loading@(bolig.Id) acc-toggle js-toggle-chart" data-propertyID="@p.Id" data-houseID="@bolig.Id" data-productFieldValueAddress="@(Dynamicweb.Core.Converter.ToString(p.GetProductFieldValue("xEjendomAdresseAdresseLinie")))" data-acc-label-loading="Hej" data-acc-label-hide="Skjul statistik" data-acc-label-show="Vis statistik">Vis statistik</div> 546 547 </div> 548 </div> 549 </section> 550 551 </section> 552 </section> 553 554 } 555 556 <section class="no-sales-items"><div class="container mt-4 mb-4 text-center"><h4>@Translate("Smartpage:Mitboligsalg.NoSearch", "Din søgning havde ikke resultater")</h4></div></section> 557 558 559 </div> 560 } 561 }