Søg bolig
0 Boliger til salg
På Mit Boligsalg kan du følge salget af din bolig. Se hvor mange der har besøgt din boligpræsentation og hentet en salgsopstilling.
Error compiling template "/Paragraph/user_sale_items.cshtml" Line 80: ; expected Line 28: 'User.GetCurrentExtranetUser()' is obsolete: 'Use UserContext.Current.User instead.' Line 32: 'User.IsExtranetUserLoggedIn()' is obsolete: 'Use IsFrontendUserLoggedIn() instead.' Line 46: 'User.Groups' is obsolete: 'Use GetGroups instead.' Line 80: 'Product' does not contain a definition for 'GetProductsByProductIDs' Line 81: 'Func, IEnumerable >' does not contain a definition for 'ToList' and no accessible extension method 'ToList' accepting a first argument of type 'Func , IEnumerable >' could be found (are you missing a using directive or an assembly reference?) Line 81: '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 105: The type or namespace name 'Broker' does not exist in the namespace 'RealEstate' (are you missing an assembly reference?) Line 179: The name 'HttpUtility' does not exist in the current context Line 394: 'Utils' does not contain a definition for 'ExtractMaskedEmail' Line 397: 'Utils' does not contain a definition for 'ExtractMaskedEmail' Line 409: 'Utils' does not contain a definition for 'FormatPhoneNumber' Line 421: 'Utils' does not contain a definition for 'FormatPhoneNumber' Line 456: 'Utils' does not contain a definition for 'FormatPhoneNumber' Line 111: The variable 'e' is declared but never used Line 122: The variable 'e' is declared but 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 Dynamicweb; 11 using System.Globalization; 12 using RealEstate.User; 13 using Custom.Integration.Brokers; 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_fa872265c4b14696a73a440923fd51b9 : 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\r\n"); 25 26 var culture = new System.Globalization.CultureInfo("da-DK"); 27 28 var user = Dynamicweb.Security.UserManagement.User.GetCurrentExtranetUser(); 29 bool isBroker = (user?.ItemType == "Medarbejder" ? true : false); 30 var ItemModel = Search.Item(user); 31 WriteLiteral("\r\n"); 32 if (Dynamicweb.Security.UserManagement.User.IsExtranetUserLoggedIn()) 33 { 34 string SellerString = ""; 35 string[] SplittedIDS = new string[] { }; 36 List<string> butikker = new List<string>(); 37 38 HashSet<string> godkendteSager = new HashSet<string>(ItemModel.GetString("Godkendte_Salgsopstillinger").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); 39 40 if (!string.IsNullOrEmpty(ItemModel.GetString("SagsNrListe")) || isBroker) 41 { 42 43 if (isBroker) 44 { 45 // Get all relevant butikIds for this user via his groups 46 foreach (var group in user.Groups) 47 { 48 var butikId = group.Item().GetString("CBMedlemsnummer"); 49 if (!String.IsNullOrEmpty(butikId)) 50 { 51 butikker.Add(butikId); 52 } 53 } 54 55 Dynamicweb.Indexing.Querying.IQueryProvider maeglerBoligerQueryProvider = Dynamicweb.Extensibility.ServiceLocator.Current.GetInstance<Dynamicweb.Indexing.IIndexService>().LoadIndex("Boliger", "Boliger.index").GetInstance() as Dynamicweb.Indexing.Querying.IQueryProvider; 56 Dynamicweb.Indexing.Querying.IQuery maeglerBoligerQuery = Dynamicweb.Extensibility.ServiceLocator.Current.GetInstance<Dynamicweb.Indexing.Querying.IQueryService>().LoadQuery("Boliger", "Medarbejderboliger.query"); 57 Dynamicweb.Indexing.Querying.QuerySettings querySettings = new Dynamicweb.Indexing.Querying.QuerySettings(); 58 querySettings.IncludeDebugInfo = true; 59 querySettings.Take = 256; 60 querySettings.Parameters = new Dictionary<string, object>(); 61 querySettings.Parameters.Add("butikker", butikker.ToArray()); 62 63 Dynamicweb.Indexing.Querying.IQueryResult queryResult = null; 64 try 65 { 66 queryResult = maeglerBoligerQueryProvider.Query(maeglerBoligerQuery, querySettings); 67 SplittedIDS = queryResult.QueryResult.Select(x => (((Dictionary<string, object>)x)["ID"]).ToString()).ToArray(); 68 } 69 catch 70 { 71 // Ignore 72 } 73 } 74 else 75 { 76 SellerString = ItemModel.GetString("SagsNrListe"); 77 SplittedIDS = SellerString.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 78 } 79 80 var Properties = Dynamicweb.Ecommerce.Services.Products.GetProductsByKeys Dynamicweb.Ecommerce.Products.Product.GetProductsByProductIDs(SplittedIDS); 81 var products = Properties.ToList().OrderByDescending(p => p.GetFieldDateTimeValue("xMarketingFoersteAnnonceringsdato")); 82 83 BoligManager boligManager = new BoligManager(Pageview); 84 85 if (products.Any()) 86 { 87 WriteLiteral(" <div class=\"sales-items\">\r\n"); 88 foreach (var p in products) 89 { 90 var bolig = boligManager.CreateBolig(p); 91 string imgUrl = ""; 92 string imgClass = "na"; 93 imgUrl = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 94 if (!String.IsNullOrEmpty(bolig.ImageUrl)) 95 { 96 imgUrl = bolig.ImageUrl; 97 imgClass = ""; 98 } 99 string propCategory = bolig.Ejendomskategori; 100 bool propIsErhverv = bolig.Erhverv; 101 102 string altan = p.GetFieldStringValue("xEjendomFaciliteterAltan"); 103 int garageAreal = p.GetFieldIntValue("xEjendomArealerOevrigeArealerGarage") + p.GetFieldIntValue("xEjendomArealerHovedbygningIntegreredeArealerGarage"); 104 105 RealEstate.Broker.Model.BrokerEmployee propBroker = null; 106 var brokerUrl = ""; 107 try 108 { 109 propBroker = Search.GetEmployee(p.GetProductFieldValue("xButikID").ToString(), p.GetProductFieldValue("xAktoererMaeglerKontaktEmail").ToString()); 110 } 111 catch (Exception e) { } 112 113 string bName = String.Empty; 114 string bEmail = String.Empty; 115 if (propBroker != null) 116 { 117 try 118 { 119 var ItemModelBroker = Search.Item(propBroker.Broker); 120 brokerUrl = "/" + ItemModelBroker.GetString("CBMedlemsnummer").Substring(1); 121 } 122 catch (Exception e) { } 123 124 bName = propBroker.Broker.Name; 125 if (!String.IsNullOrEmpty(propBroker.Broker.CompanyName)) 126 { 127 bName = propBroker.Broker.CompanyName; 128 } 129 130 var butikId = String.Empty; 131 if (propBroker != null && propBroker.Broker != null) 132 { 133 butikId = propBroker.Broker.Item().GetString("CBMedlemsnummer"); 134 bEmail = propBroker.Broker.Item().GetString("Email"); 135 } 136 } 137 var tidligereAabnehuse = boligManager.TidligereAfholdteAabnehuse(bolig); 138 139 Dictionary<string, string> edhFiles = BoligManager.GetEDHFilesCompact(p); 140 141 WriteLiteral(@" <section class=""clearfix sale-item""> 142 <section class=""my-sales-items bolig-page bolig-list bolig-list-static""> 143 <div class=""container""> 144 <div class=""content""> 145 <div class=""row""> 146 <div class=""col-12""> 147 <h2>"); 148 Write(p.GetFieldStringValue("xEjendomAdresseAdresseLinie")); 149 WriteLiteral("<br>"); 150 Write(p.GetFieldStringValue("xEjendomAdressePostAdresseLinie")); 151 WriteLiteral(@"</h2> 152 </div> 153 </div> 154 <div class=""row""> 155 <div class=""bolig col-md-4""> 156 <div class=""box""> 157 <a"); 158 BeginWriteAttribute("href", " href=\'", 7013, "\'", 7034, 1); 159 WriteAttributeValue("", 7020, bolig.LinkUrl, 7020, 14, false); 160 EndWriteAttribute(); 161 WriteLiteral(" target=\"_blank\">\r\n <div class=\"img-wrapper\">\r\n"); 162 if (!String.IsNullOrEmpty(bolig.Label)) 163 { 164 WriteLiteral(" <div class=\"label\"><b>"); 165 Write(bolig.Label); 166 WriteLiteral("</b></div>\r\n"); 167 } 168 169 //PushPromise(imgUrl); 170 WriteLiteral(" <img"); 171 BeginWriteAttribute("src", " src=\"", 7718, "\"", 7731, 1); 172 WriteAttributeValue("", 7724, imgUrl, 7724, 7, false); 173 EndWriteAttribute(); 174 BeginWriteAttribute("class", " class=\"", 7732, "\"", 7764, 2); 175 WriteAttributeValue("", 7740, "img-responsive", 7740, 14, true); 176 WriteAttributeValue(" ", 7754, imgClass, 7755, 9, false); 177 EndWriteAttribute(); 178 BeginWriteAttribute("alt", " alt=\"", 7765, "\"", 7842, 2); 179 WriteAttributeValue("", 7771, HttpUtility.HtmlAttributeEncode(bolig.Adresse), 7771, 47, false); 180 WriteAttributeValue(" ", 7818, bolig.Ejendomskategori, 7819, 23, false); 181 EndWriteAttribute(); 182 WriteLiteral(" />\r\n </div>\r\n </a>\r\n </div>\r\n"); 183 if (tidligereAabnehuse.Count > 0) 184 { 185 WriteLiteral(" <div class=\"open-houses\">\r\n <b>Tidligere afholdte åbent hus</b>\r\n"); 186 foreach (var item in tidligereAabnehuse) 187 { 188 WriteLiteral(" <p>\r\n "); 189 Write(item.Dag); 190 WriteLiteral(" "); 191 Write(item.DatoFormateret); 192 WriteLiteral(" "); 193 if (!String.IsNullOrEmpty(item.TidspunktFormateret)) 194 { Write(item.TidspunktFormateret); 195 } 196 WriteLiteral(" </p>\r\n"); 197 } 198 WriteLiteral(" </div>\r\n"); 199 } 200 WriteLiteral(@" </div> 201 <div class=""col-md-4""> 202 <h3>Detaljer</h3> 203 <table> 204 <tr> 205 <td>Sagsnummer</td> 206 <td align=""right""><b>"); 207 Write(bolig.Id); 208 WriteLiteral("</b></td>\r\n </tr>\r\n"); 209 if (!propIsErhverv) 210 { 211 if (string.IsNullOrEmpty(p.GetFieldStringValue("xEjendomBSEjendomstype"))) 212 { 213 WriteLiteral(" <tr>\r\n <td>Boligtype</td>\r\n <td align=\"right\"><b>"); 214 Write(p.GetFieldStringValue("xEjendomBSEjendomstype")); 215 WriteLiteral("</b></td>\r\n </tr>\r\n"); 216 } 217 if (p.GetFieldIntValue("xEjendomArealerBoligAreal") > 0) 218 { 219 WriteLiteral(" <tr>\r\n <td>Boligareal</td>\r\n <td align=\"right\"><b>"); 220 Write(p.GetFieldStringValue("xEjendomArealerBoligAreal")); 221 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 222 } 223 if (p.GetFieldIntValue("xEjendomArealerGrundArealHA") > 0) 224 { 225 WriteLiteral(" <tr>\r\n <td>Grundareal</td>\r\n <td align=\"right\"><b>"); 226 Write(p.GetFieldIntValue("xEjendomArealerGrundArealHA")); 227 WriteLiteral(" hektar</b></td>\r\n </tr>\r\n"); 228 } 229 else if (p.GetFieldIntValue("xEjendomArealerGrundAreal") > 0) 230 { 231 WriteLiteral(" <tr>\r\n <td>Grundareal</td>\r\n <td align=\"right\"><b>"); 232 Write(p.GetFieldIntValue("xEjendomArealerGrundAreal")); 233 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 234 } 235 if (p.GetFieldIntValue("xEjendomArealerKaelderAreal") > 0) 236 { 237 WriteLiteral(" <tr>\r\n <td>Kælderareal</td>\r\n <td align=\"right\"><b>"); 238 Write(p.GetFieldIntValue("xEjendomArealerKaelderAreal")); 239 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 240 } 241 if (garageAreal > 0) 242 { 243 WriteLiteral(" <tr>\r\n <td>Garage/carport</td>\r\n <td align=\"right\"><b>"); 244 Write(garageAreal); 245 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 246 } 247 if (!String.IsNullOrEmpty(altan) && altan.ToLower() == "true") 248 { 249 WriteLiteral(@" <tr> 250 <td>Altan</td> 251 <td align=""right""><b>Ja</b></td> 252 </tr> 253 "); 254 } 255 if (p.GetFieldIntValue("xEjendomOpfoertAar") != 0) 256 { 257 WriteLiteral(@" <tr> 258 <td>Bygget/ombygget</td> 259 <td align=""right""> 260 <b> 261 "); 262 Write(p.GetFieldIntValue("xEjendomOpfoertAar")); 263 WriteLiteral("\r\n"); 264 if (p.GetFieldIntValue("xEjendomOmbyggetAar") != 0) 265 {WriteLiteral(" / "); 266 Write(p.GetFieldIntValue("xEjendomOmbyggetAar")); 267 } 268 WriteLiteral(" </b>\r\n </td>\r\n </tr>\r\n"); 269 } 270 if (p.GetFieldIntValue("xEjendomArealerVaerelser") != 0) 271 { 272 WriteLiteral(" <tr>\r\n <td>Antal rum</td>\r\n <td align=\"right\"><b>"); 273 Write(p.GetFieldStringValue("xEjendomArealerVaerelser")); 274 WriteLiteral(" </b></td>\r\n </tr>\r\n"); 275 } 276 if (p.GetFieldIntValue("xEjendomArealerEtager") != 0) 277 { 278 WriteLiteral(" <tr>\r\n <td>Etager</td>\r\n <td align=\"right\"><b>"); 279 Write(p.GetFieldStringValue("xEjendomArealerEtager")); 280 WriteLiteral("</b></td>\r\n </tr>\r\n"); 281 } 282 } 283 else 284 { 285 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEjendomstype"))) 286 { 287 WriteLiteral(@" <tr> 288 <td>Ejendomstype</td> 289 <td align=""right""> 290 <b> 291 "); 292 Write(p.GetFieldStringValue("xEjendomEjendomstype")); 293 WriteLiteral("\r\n </b>\r\n </td>\r\n </tr>\r\n"); 294 } 295 if (p.GetFieldStringValue("xUdbudsForm") == "Salg" && p.GetFieldIntValue("xEjendomArealerErhvervAreal") > 0) 296 { 297 WriteLiteral(" <tr>\r\n <td>Erhvervsareal</td>\r\n <td align=\"right\"><b>"); 298 Write(p.GetFieldStringValue("xEjendomArealerErhvervAreal")); 299 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 300 } 301 else if (p.GetFieldStringValue("xUdbudsForm") == "Leje" && p.GetFieldIntValue("xEjendomArealerEtageAreal") > 0) 302 { 303 WriteLiteral(" <tr>\r\n <td>Erhvervsareal</td>\r\n <td align=\"right\"><b>"); 304 Write(p.GetFieldStringValue("xEjendomArealerEtageAreal")); 305 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 306 } 307 if (p.GetFieldIntValue("xEjendomArealerGrundArealHA") > 0) 308 { 309 WriteLiteral(" <tr>\r\n <td>Grund</td>\r\n <td align=\"right\"><b>"); 310 Write(p.GetFieldIntValue("xEjendomArealerGrundArealHA")); 311 WriteLiteral(" hektar</b></td>\r\n </tr>\r\n"); 312 } 313 else if (p.GetFieldIntValue("xEjendomArealerGrundAreal") > 0) 314 { 315 WriteLiteral(" <tr>\r\n <td>Grund</td>\r\n <td align=\"right\"><b>"); 316 Write(p.GetFieldIntValue("xEjendomArealerGrundAreal")); 317 WriteLiteral(" m<sup>2</sup></b></td>\r\n </tr>\r\n"); 318 } 319 if (p.GetFieldIntValue("xEjendomOpfoertAar") != 0) 320 { 321 WriteLiteral(@" <tr> 322 <td>Bygget/ombygget</td> 323 <td align=""right""> 324 <b> 325 "); 326 Write(p.GetFieldIntValue("xEjendomOpfoertAar")); 327 WriteLiteral("\r\n"); 328 if (p.GetFieldIntValue("xEjendomOmbyggetAar") != 0) 329 {WriteLiteral(" / "); 330 Write(p.GetFieldIntValue("xEjendomOmbyggetAar")); 331 } 332 WriteLiteral(" </b>\r\n </td>\r\n </tr>\r\n"); 333 } 334 } 335 WriteLiteral(@" <tr> 336 <td> </td> 337 <td align=""right""> </td> 338 </tr> 339 "); 340 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEnergiklassifikation")) && !propIsErhverv) 341 { 342 WriteLiteral(@" <tr> 343 <td>Energimærke</td> 344 <td align=""right""> 345 <div class=""energylabel"" data-energylabel="""); 346 Write(p.GetFieldStringValue("xEjendomEnergiklassifikation")); 347 WriteLiteral("\"></div>\r\n </td>\r\n </tr>\r\n"); 348 } 349 WriteLiteral(" </table>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <h3>Mægler</h3>\r\n"); 350 if (propBroker != null) 351 { 352 string eImg = ""; 353 string bClass = "col-12"; 354 if (propBroker.Employee != null) 355 { 356 string image = propBroker.Employee.Item().GetString("Portrait1000"); 357 if (!String.IsNullOrEmpty(image)) 358 { 359 eImg = image; 360 bClass = "col-7"; 361 } 362 } 363 WriteLiteral(" <div class=\"row\">\r\n"); 364 if (!String.IsNullOrEmpty(eImg)) 365 { 366 WriteLiteral(" <div class=\"col-5\">\r\n <a"); 367 BeginWriteAttribute("href", " href=\"", 22864, "\"", 22881, 1); 368 WriteAttributeValue("", 22871, brokerUrl, 22871, 10, false); 369 EndWriteAttribute(); 370 WriteLiteral(">\r\n"); 371 372 //PushPromise(eImg); 373 WriteLiteral(" <img"); 374 BeginWriteAttribute("src", " src=\"", 23178, "\"", 23189, 1); 375 WriteAttributeValue("", 23184, eImg, 23184, 5, false); 376 EndWriteAttribute(); 377 WriteLiteral(" class=\"img-responsive\" />\r\n </a>\r\n </div>"); 378 } 379 WriteLiteral(" <div"); 380 BeginWriteAttribute("class", " class=\"", 23405, "\"", 23420, 1); 381 WriteAttributeValue("", 23413, bClass, 23413, 7, false); 382 EndWriteAttribute(); 383 WriteLiteral(">\r\n <p>\r\n"); 384 if (propBroker.Employee != null) 385 { 386 WriteLiteral(" <b>"); 387 Write(propBroker.Employee.Name); 388 WriteLiteral("</b><br>\r\n"); 389 if (!String.IsNullOrEmpty(propBroker.Employee.Email)) 390 { 391 WriteLiteral("Mail: <a"); 392 BeginWriteAttribute("href", " href=\"", 24015, "\"", 24083, 2); 393 WriteAttributeValue("", 24022, "mailto:", 24022, 7, true); 394 WriteAttributeValue("", 24029, Utils.ExtractMaskedEmail(propBroker.Employee.Email), 24029, 54, false); 395 EndWriteAttribute(); 396 WriteLiteral(">"); 397 Write(Utils.ExtractMaskedEmail(propBroker.Employee.Email)); 398 WriteLiteral("</a><br>"); 399 400 } 401 if (!String.IsNullOrEmpty(propBroker.Employee.PhoneMobile)) 402 { 403 WriteLiteral("Tlf.: <a"); 404 BeginWriteAttribute("href", " href=\"", 24495, "\"", 24540, 2); 405 WriteAttributeValue("", 24502, "tel:", 24502, 4, true); 406 WriteAttributeValue("", 24506, propBroker.Employee.PhoneMobile, 24506, 34, false); 407 EndWriteAttribute(); 408 WriteLiteral(">"); 409 Write(Utils.FormatPhoneNumber(propBroker.Employee.PhoneMobile)); 410 WriteLiteral("</a><br>"); 411 412 } 413 else if (!String.IsNullOrEmpty(propBroker.Broker.Telephone)) 414 { 415 WriteLiteral("Tlf.: <a"); 416 BeginWriteAttribute("href", " href=\"", 24958, "\"", 24999, 2); 417 WriteAttributeValue("", 24965, "tel:", 24965, 4, true); 418 WriteAttributeValue("", 24969, propBroker.Broker.Telephone, 24969, 30, false); 419 EndWriteAttribute(); 420 WriteLiteral(">"); 421 Write(Utils.FormatPhoneNumber(propBroker.Broker.Telephone)); 422 WriteLiteral("</a><br>"); 423 424 } 425 WriteLiteral(" <br>\r\n"); 426 } 427 WriteLiteral(" <b>"); 428 Write(bName); 429 WriteLiteral("</b><br>\r\n "); 430 Write(propBroker.Broker.Address); 431 WriteLiteral("<br>\r\n "); 432 Write(propBroker.Broker.ZipCode); 433 WriteLiteral(" "); 434 Write(propBroker.Broker.City); 435 WriteLiteral("<br>\r\n"); 436 if (!String.IsNullOrEmpty(bEmail)) 437 { 438 WriteLiteral("Mail: <a"); 439 BeginWriteAttribute("href", " href=\"", 25796, "\"", 25819, 2); 440 WriteAttributeValue("", 25803, "mailto:", 25803, 7, true); 441 WriteAttributeValue("", 25810, bEmail, 25810, 9, false); 442 EndWriteAttribute(); 443 WriteLiteral(">"); 444 Write(bEmail); 445 WriteLiteral("</a><br />"); 446 447 } 448 if (!String.IsNullOrEmpty(propBroker.Broker.Telephone)) 449 { 450 WriteLiteral("Tlf.: <a"); 451 BeginWriteAttribute("href", " href=\"", 26171, "\"", 26212, 2); 452 WriteAttributeValue("", 26178, "tel:", 26178, 4, true); 453 WriteAttributeValue("", 26182, propBroker.Broker.Telephone, 26182, 30, false); 454 EndWriteAttribute(); 455 WriteLiteral(">"); 456 Write(Utils.FormatPhoneNumber(propBroker.Broker.Telephone)); 457 WriteLiteral("</a><br />"); 458 459 } 460 WriteLiteral(" </p>\r\n </div>\r\n </div>\r\n"); 461 } 462 else 463 { 464 WriteLiteral(" <div class=\"row\">\r\n Denne bolig har ingen mægler tilkoblet.\r\n </div>\r\n"); 465 } 466 WriteLiteral(" </div>\r\n </div>\r\n"); 467 if (edhFiles.Any()) 468 { 469 WriteLiteral(@" <div class=""row""> 470 <div class=""col-md-4 hidden-xs""> </div> 471 <div class=""downloads col-md-8""> 472 <h3>Dokumenter</h3> 473 <table> 474 "); 475 foreach (var item in edhFiles) 476 { 477 if (item.Value.ToLower() == "salgsopstilling") 478 { 479 WriteLiteral(" <tr>\r\n"); 480 if (propIsErhverv) 481 { 482 WriteLiteral(" <td>\r\n <a"); 483 BeginWriteAttribute("href", " href=\"", 28147, "\"", 28163, 1); 484 WriteAttributeValue("", 28154, item.Key, 28154, 9, false); 485 EndWriteAttribute(); 486 WriteLiteral(" class=\"downloads-link\" target=\"_blank\">Salgsprospekt</a>\r\n </td>\r\n"); 487 } 488 else 489 { 490 WriteLiteral(" <td>\r\n <a"); 491 BeginWriteAttribute("href", " href=\"", 28650, "\"", 28666, 1); 492 WriteAttributeValue("", 28657, item.Key, 28657, 9, false); 493 EndWriteAttribute(); 494 WriteLiteral(" class=\"downloads-link\" target=\"_blank\">"); 495 Write(item.Value); 496 WriteLiteral("</a>\r\n </td>\r\n"); 497 } 498 WriteLiteral(" </tr>\r\n"); 499 } 500 else 501 { 502 WriteLiteral(" <tr>\r\n <td colspan=\"2\">\r\n <a"); 503 BeginWriteAttribute("href", " href=\"", 29331, "\"", 29347, 1); 504 WriteAttributeValue("", 29338, item.Key, 29338, 9, false); 505 EndWriteAttribute(); 506 WriteLiteral(" class=\"downloads-link\" target=\"_blank\">"); 507 Write(item.Value); 508 WriteLiteral("</a>\r\n </td>\r\n </tr>\r\n"); 509 } 510 } 511 WriteLiteral(" </table>\r\n </div>\r\n </div>\r\n"); 512 } 513 WriteLiteral(" </div>\r\n </div>\r\n\r\n"); 514 515 Dynamicweb.Content.PageService a = new Dynamicweb.Content.PageService(); 516 var pageID = 0; 517 518 var page = a.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, "UserSaleItemsNavigationTag"); 519 520 if (page != null) 521 { 522 pageID = page.ID; 523 } 524 525 WriteLiteral(" <input type=\"hidden\" class=\"js-GraphPageAjax\""); 526 BeginWriteAttribute("value", " value=\"", 30552, "\"", 30583, 2); 527 WriteAttributeValue("", 30560, "Default.aspx?id=", 30560, 16, true); 528 WriteAttributeValue("", 30576, pageID, 30576, 7, false); 529 EndWriteAttribute(); 530 WriteLiteral(">\r\n\r\n <section class=\"my-sales-items-statistic\">\r\n <div class=\"container\">\r\n\r\n <div"); 531 BeginWriteAttribute("id", " id=\"", 30760, "\"", 30791, 2); 532 WriteAttributeValue("", 30765, "js-insert-Graph", 30765, 15, true); 533 WriteAttributeValue("", 30780, bolig.Id, 30780, 11, false); 534 EndWriteAttribute(); 535 WriteLiteral(">\r\n <div hidden class=\"acc-toggle loading-text\">"); 536 Write(Translate("Smartpage.Graphloadingtext", "Vent venligst...")); 537 WriteLiteral("</div>\r\n </div>\r\n\r\n <div class=\"acc-toggle-container row\">\r\n <div"); 538 BeginWriteAttribute("class", " class=\"", 31113, "\"", 31166, 4); 539 WriteAttributeValue("", 31121, "loading", 31121, 7, true); 540 WriteAttributeValue("", 31128, bolig.Id, 31128, 11, false); 541 WriteAttributeValue(" ", 31139, "acc-toggle", 31140, 11, true); 542 WriteAttributeValue(" ", 31150, "js-toggle-chart", 31151, 16, true); 543 EndWriteAttribute(); 544 WriteLiteral(" data-propertyID=\""); 545 Write(p.Id); 546 WriteLiteral("\" data-houseID=\""); 547 Write(bolig.Id); 548 WriteLiteral("\" data-productFieldValueAddress=\""); 549 Write(Dynamicweb.Core.Converter.ToString(p.GetProductFieldValue("xEjendomAdresseAdresseLinie"))); 550 WriteLiteral(@""" data-acc-label-loading=""Hej"" data-acc-label-hide=""Skjul statistik"" data-acc-label-show=""Vis statistik"">Vis statistik</div> 551 552 </div> 553 </div> 554 </section> 555 556 </section> 557 </section> 558 "); 559 560 } 561 WriteLiteral(" <section class=\"no-sales-items\"><div class=\"container mt-4 mb-4 text-center\"><h4>"); 562 Write(Translate("Smartpage:Mitboligsalg.NoSearch", "Din søgning havde ikke resultater")); 563 WriteLiteral("</h4></div></section>\r\n\r\n\r\n </div>\r\n"); 564 } 565 else 566 { 567 WriteLiteral(" <section><div class=\"container mt-4 mb-4 text-center\"><h4>"); 568 Write(Translate("Smartpage:Mitboligsalg.NoItemsForSale", "Ingen boliger til salg")); 569 WriteLiteral("</h4></div></section>\r\n"); 570 571 } 572 573 } 574 575 } 576 } 577 #pragma warning restore 1998 578 } 579 } 580 #pragma warning restore 1591 581
1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using System 3 @using Dynamicweb; 4 @using System.Globalization; 5 @using RealEstate.User; 6 @using Custom.Integration.Brokers; 7 @using RealMaeglerne.Library; 8 @using RealMaeglerne.Library.Models; 9 @using RealMaeglerne.Dynamicweb; 10 @using Newtonsoft.Json; 11 @using Dynamicweb.Core; 12 13 14 @{ 15 var culture = new System.Globalization.CultureInfo("da-DK"); 16 17 var user = Dynamicweb.Security.UserManagement.User.GetCurrentExtranetUser(); 18 bool isBroker = (user?.ItemType == "Medarbejder" ? true : false); 19 var ItemModel = Search.Item(user); 20 } 21 22 @if (Dynamicweb.Security.UserManagement.User.IsExtranetUserLoggedIn()) 23 { 24 string SellerString = ""; 25 string[] SplittedIDS = new string[] { }; 26 List<string> butikker = new List<string>(); 27 28 HashSet<string> godkendteSager = new HashSet<string>(ItemModel.GetString("Godkendte_Salgsopstillinger").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); 29 30 if (!string.IsNullOrEmpty(ItemModel.GetString("SagsNrListe")) || isBroker) 31 { 32 33 if (isBroker) 34 { 35 // Get all relevant butikIds for this user via his groups 36 foreach (var group in user.Groups) 37 { 38 var butikId = group.Item().GetString("CBMedlemsnummer"); 39 if (!String.IsNullOrEmpty(butikId)) 40 { 41 butikker.Add(butikId); 42 } 43 } 44 45 Dynamicweb.Indexing.Querying.IQueryProvider maeglerBoligerQueryProvider = Dynamicweb.Extensibility.ServiceLocator.Current.GetInstance<Dynamicweb.Indexing.IIndexService>().LoadIndex("Boliger", "Boliger.index").GetInstance() as Dynamicweb.Indexing.Querying.IQueryProvider; 46 Dynamicweb.Indexing.Querying.IQuery maeglerBoligerQuery = Dynamicweb.Extensibility.ServiceLocator.Current.GetInstance<Dynamicweb.Indexing.Querying.IQueryService>().LoadQuery("Boliger", "Medarbejderboliger.query"); 47 Dynamicweb.Indexing.Querying.QuerySettings querySettings = new Dynamicweb.Indexing.Querying.QuerySettings(); 48 querySettings.IncludeDebugInfo = true; 49 querySettings.Take = 256; 50 querySettings.Parameters = new Dictionary<string, object>(); 51 querySettings.Parameters.Add("butikker", butikker.ToArray()); 52 53 Dynamicweb.Indexing.Querying.IQueryResult queryResult = null; 54 try 55 { 56 queryResult = maeglerBoligerQueryProvider.Query(maeglerBoligerQuery, querySettings); 57 SplittedIDS = queryResult.QueryResult.Select(x => (((Dictionary<string, object>)x)["ID"]).ToString()).ToArray(); 58 } 59 catch 60 { 61 // Ignore 62 } 63 } 64 else 65 { 66 SellerString = ItemModel.GetString("SagsNrListe"); 67 SplittedIDS = SellerString.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 68 } 69 70 var Properties = Dynamicweb.Ecommerce.Services.Products.GetProductsByKeys Dynamicweb.Ecommerce.Products.Product.GetProductsByProductIDs(SplittedIDS); 71 var products = Properties.ToList().OrderByDescending(p => p.GetFieldDateTimeValue("xMarketingFoersteAnnonceringsdato")); 72 73 BoligManager boligManager = new BoligManager(Pageview); 74 75 if (products.Any()) 76 { 77 <div class="sales-items"> 78 @foreach (var p in products) 79 { 80 var bolig = boligManager.CreateBolig(p); 81 string imgUrl = ""; 82 string imgClass = "na"; 83 imgUrl = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 84 if (!String.IsNullOrEmpty(bolig.ImageUrl)) 85 { 86 imgUrl = bolig.ImageUrl; 87 imgClass = ""; 88 } 89 string propCategory = bolig.Ejendomskategori; 90 bool propIsErhverv = bolig.Erhverv; 91 92 string altan = p.GetFieldStringValue("xEjendomFaciliteterAltan"); 93 int garageAreal = p.GetFieldIntValue("xEjendomArealerOevrigeArealerGarage") + p.GetFieldIntValue("xEjendomArealerHovedbygningIntegreredeArealerGarage"); 94 95 RealEstate.Broker.Model.BrokerEmployee propBroker = null; 96 var brokerUrl = ""; 97 try 98 { 99 propBroker = Search.GetEmployee(p.GetProductFieldValue("xButikID").ToString(), p.GetProductFieldValue("xAktoererMaeglerKontaktEmail").ToString()); 100 } 101 catch (Exception e) { } 102 103 string bName = String.Empty; 104 string bEmail = String.Empty; 105 if (propBroker != null) 106 { 107 try 108 { 109 var ItemModelBroker = Search.Item(propBroker.Broker); 110 brokerUrl = "/" + ItemModelBroker.GetString("CBMedlemsnummer").Substring(1); 111 } 112 catch (Exception e) { } 113 114 bName = propBroker.Broker.Name; 115 if (!String.IsNullOrEmpty(propBroker.Broker.CompanyName)) 116 { 117 bName = propBroker.Broker.CompanyName; 118 } 119 120 var butikId = String.Empty; 121 if (propBroker != null && propBroker.Broker != null) 122 { 123 butikId = propBroker.Broker.Item().GetString("CBMedlemsnummer"); 124 bEmail = propBroker.Broker.Item().GetString("Email"); 125 } 126 } 127 var tidligereAabnehuse = boligManager.TidligereAfholdteAabnehuse(bolig); 128 129 Dictionary<string, string> edhFiles = BoligManager.GetEDHFilesCompact(p); 130 131 <section class="clearfix sale-item"> 132 <section class="my-sales-items bolig-page bolig-list bolig-list-static"> 133 <div class="container"> 134 <div class="content"> 135 <div class="row"> 136 <div class="col-12"> 137 <h2>@p.GetFieldStringValue("xEjendomAdresseAdresseLinie")<br>@p.GetFieldStringValue("xEjendomAdressePostAdresseLinie")</h2> 138 </div> 139 </div> 140 <div class="row"> 141 <div class="bolig col-md-4"> 142 <div class="box"> 143 <a href='@bolig.LinkUrl' target="_blank"> 144 <div class="img-wrapper"> 145 @if (!String.IsNullOrEmpty(bolig.Label)) 146 { 147 <div class="label"><b>@bolig.Label</b></div> 148 } 149 @{ 150 //PushPromise(imgUrl); 151 } 152 <img src="@imgUrl" class="img-responsive @imgClass" alt="@HttpUtility.HtmlAttributeEncode(bolig.Adresse) @bolig.Ejendomskategori" /> 153 </div> 154 </a> 155 </div> 156 @if (tidligereAabnehuse.Count > 0) 157 { 158 <div class="open-houses"> 159 <b>Tidligere afholdte åbent hus</b> 160 @foreach (var item in tidligereAabnehuse) 161 { 162 <p> 163 @item.Dag @item.DatoFormateret @if (!String.IsNullOrEmpty(item.TidspunktFormateret)) 164 {<text>@item.TidspunktFormateret</text>} 165 </p> 166 } 167 </div> 168 } 169 </div> 170 <div class="col-md-4"> 171 <h3>Detaljer</h3> 172 <table> 173 <tr> 174 <td>Sagsnummer</td> 175 <td align="right"><b>@bolig.Id</b></td> 176 </tr> 177 @if (!propIsErhverv) 178 { 179 if (string.IsNullOrEmpty(p.GetFieldStringValue("xEjendomBSEjendomstype"))) 180 { 181 <tr> 182 <td>Boligtype</td> 183 <td align="right"><b>@p.GetFieldStringValue("xEjendomBSEjendomstype")</b></td> 184 </tr> 185 } 186 if (p.GetFieldIntValue("xEjendomArealerBoligAreal") > 0) 187 { 188 <tr> 189 <td>Boligareal</td> 190 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerBoligAreal") m<sup>2</sup></b></td> 191 </tr> 192 } 193 if (p.GetFieldIntValue("xEjendomArealerGrundArealHA") > 0) 194 { 195 <tr> 196 <td>Grundareal</td> 197 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerGrundArealHA") hektar</b></td> 198 </tr> 199 } 200 else if (p.GetFieldIntValue("xEjendomArealerGrundAreal") > 0) 201 { 202 <tr> 203 <td>Grundareal</td> 204 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerGrundAreal") m<sup>2</sup></b></td> 205 </tr> 206 } 207 if (p.GetFieldIntValue("xEjendomArealerKaelderAreal") > 0) 208 { 209 <tr> 210 <td>Kælderareal</td> 211 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerKaelderAreal") m<sup>2</sup></b></td> 212 </tr> 213 } 214 if (garageAreal > 0) 215 { 216 <tr> 217 <td>Garage/carport</td> 218 <td align="right"><b>@garageAreal m<sup>2</sup></b></td> 219 </tr> 220 } 221 if (!String.IsNullOrEmpty(altan) && altan.ToLower() == "true") 222 { 223 <tr> 224 <td>Altan</td> 225 <td align="right"><b>Ja</b></td> 226 </tr> 227 } 228 if (p.GetFieldIntValue("xEjendomOpfoertAar") != 0) 229 { 230 <tr> 231 <td>Bygget/ombygget</td> 232 <td align="right"> 233 <b> 234 @p.GetFieldIntValue("xEjendomOpfoertAar") 235 @if (p.GetFieldIntValue("xEjendomOmbyggetAar") != 0) 236 {<text> / @p.GetFieldIntValue("xEjendomOmbyggetAar")</text>} 237 </b> 238 </td> 239 </tr> 240 } 241 if (p.GetFieldIntValue("xEjendomArealerVaerelser") != 0) 242 { 243 <tr> 244 <td>Antal rum</td> 245 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerVaerelser") </b></td> 246 </tr> 247 } 248 if (p.GetFieldIntValue("xEjendomArealerEtager") != 0) 249 { 250 <tr> 251 <td>Etager</td> 252 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerEtager")</b></td> 253 </tr> 254 } 255 } 256 else 257 { 258 if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEjendomstype"))) 259 { 260 <tr> 261 <td>Ejendomstype</td> 262 <td align="right"> 263 <b> 264 @p.GetFieldStringValue("xEjendomEjendomstype") 265 </b> 266 </td> 267 </tr> 268 } 269 if (p.GetFieldStringValue("xUdbudsForm") == "Salg" && p.GetFieldIntValue("xEjendomArealerErhvervAreal") > 0) 270 { 271 <tr> 272 <td>Erhvervsareal</td> 273 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerErhvervAreal") m<sup>2</sup></b></td> 274 </tr> 275 } 276 else if (p.GetFieldStringValue("xUdbudsForm") == "Leje" && p.GetFieldIntValue("xEjendomArealerEtageAreal") > 0) 277 { 278 <tr> 279 <td>Erhvervsareal</td> 280 <td align="right"><b>@p.GetFieldStringValue("xEjendomArealerEtageAreal") m<sup>2</sup></b></td> 281 </tr> 282 } 283 if (p.GetFieldIntValue("xEjendomArealerGrundArealHA") > 0) 284 { 285 <tr> 286 <td>Grund</td> 287 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerGrundArealHA") hektar</b></td> 288 </tr> 289 } 290 else if (p.GetFieldIntValue("xEjendomArealerGrundAreal") > 0) 291 { 292 <tr> 293 <td>Grund</td> 294 <td align="right"><b>@p.GetFieldIntValue("xEjendomArealerGrundAreal") m<sup>2</sup></b></td> 295 </tr> 296 } 297 if (p.GetFieldIntValue("xEjendomOpfoertAar") != 0) 298 { 299 <tr> 300 <td>Bygget/ombygget</td> 301 <td align="right"> 302 <b> 303 @p.GetFieldIntValue("xEjendomOpfoertAar") 304 @if (p.GetFieldIntValue("xEjendomOmbyggetAar") != 0) 305 {<text> / @p.GetFieldIntValue("xEjendomOmbyggetAar")</text>} 306 </b> 307 </td> 308 </tr> 309 } 310 } 311 <tr> 312 <td> </td> 313 <td align="right"> </td> 314 </tr> 315 @if (!String.IsNullOrEmpty(p.GetFieldStringValue("xEjendomEnergiklassifikation")) && !propIsErhverv) 316 { 317 <tr> 318 <td>Energimærke</td> 319 <td align="right"> 320 <div class="energylabel" data-energylabel="@p.GetFieldStringValue("xEjendomEnergiklassifikation")"></div> 321 </td> 322 </tr> 323 } 324 </table> 325 </div> 326 <div class="col-md-4"> 327 <h3>Mægler</h3> 328 @if (propBroker != null) 329 { 330 string eImg = ""; 331 string bClass = "col-12"; 332 if (propBroker.Employee != null) 333 { 334 string image = propBroker.Employee.Item().GetString("Portrait1000"); 335 if (!String.IsNullOrEmpty(image)) 336 { 337 eImg = image; 338 bClass = "col-7"; 339 } 340 } 341 <div class="row"> 342 @if (!String.IsNullOrEmpty(eImg)) 343 { 344 <div class="col-5"> 345 <a href="@brokerUrl"> 346 @{ 347 //PushPromise(eImg); 348 } 349 <img src="@eImg" class="img-responsive" /> 350 </a> 351 </div>} 352 <div class="@bClass"> 353 <p> 354 @if (propBroker.Employee != null) 355 { 356 <b>@(propBroker.Employee.Name)</b><br> 357 if (!String.IsNullOrEmpty(propBroker.Employee.Email)) 358 { 359 <text>Mail: <a href="mailto:@(Utils.ExtractMaskedEmail(propBroker.Employee.Email))">@Utils.ExtractMaskedEmail(propBroker.Employee.Email)</a><br></text> 360 } 361 if (!String.IsNullOrEmpty(propBroker.Employee.PhoneMobile)) 362 { 363 <text>Tlf.: <a href="tel:@(propBroker.Employee.PhoneMobile)">@Utils.FormatPhoneNumber(propBroker.Employee.PhoneMobile)</a><br></text> 364 } 365 else if (!String.IsNullOrEmpty(propBroker.Broker.Telephone)) 366 { 367 <text>Tlf.: <a href="tel:@(propBroker.Broker.Telephone)">@Utils.FormatPhoneNumber(propBroker.Broker.Telephone)</a><br></text> 368 } 369 <br> 370 } 371 <b>@bName</b><br> 372 @propBroker.Broker.Address<br> 373 @propBroker.Broker.ZipCode @propBroker.Broker.City<br> 374 @if (!String.IsNullOrEmpty(bEmail)) 375 { 376 <text>Mail: <a href="mailto:@(bEmail)">@(bEmail)</a><br /></text> 377 } 378 @if (!String.IsNullOrEmpty(propBroker.Broker.Telephone)) 379 { 380 <text>Tlf.: <a href="tel:@(propBroker.Broker.Telephone)">@(Utils.FormatPhoneNumber(propBroker.Broker.Telephone))</a><br /></text> 381 } 382 </p> 383 </div> 384 </div> 385 } 386 else 387 { 388 <div class="row"> 389 Denne bolig har ingen mægler tilkoblet. 390 </div> 391 } 392 </div> 393 </div> 394 @if (edhFiles.Any()) 395 { 396 <div class="row"> 397 <div class="col-md-4 hidden-xs"> </div> 398 <div class="downloads col-md-8"> 399 <h3>Dokumenter</h3> 400 <table> 401 @foreach (var item in edhFiles) 402 { 403 if (item.Value.ToLower() == "salgsopstilling") 404 { 405 <tr> 406 @if (propIsErhverv) 407 { 408 <td> 409 <a href="@item.Key" class="downloads-link" target="_blank">Salgsprospekt</a> 410 </td> 411 } 412 else 413 { 414 <td> 415 <a href="@item.Key" class="downloads-link" target="_blank">@item.Value</a> 416 </td> 417 } 418 </tr> 419 } 420 else 421 { 422 <tr> 423 <td colspan="2"> 424 <a href="@item.Key" class="downloads-link" target="_blank">@item.Value</a> 425 </td> 426 </tr> 427 } 428 } 429 </table> 430 </div> 431 </div> 432 } 433 </div> 434 </div> 435 436 @{ 437 Dynamicweb.Content.PageService a = new Dynamicweb.Content.PageService(); 438 var pageID = 0; 439 440 var page = a.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, "UserSaleItemsNavigationTag"); 441 442 if (page != null) 443 { 444 pageID = page.ID; 445 } 446 447 } 448 <input type="hidden" class="js-GraphPageAjax" value="Default.aspx?id=@pageID"> 449 450 <section class="my-sales-items-statistic"> 451 <div class="container"> 452 453 <div id="js-insert-Graph@(bolig.Id)"> 454 <div hidden class="acc-toggle loading-text">@Translate("Smartpage.Graphloadingtext", "Vent venligst...")</div> 455 </div> 456 457 <div class="acc-toggle-container row"> 458 <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> 459 460 </div> 461 </div> 462 </section> 463 464 </section> 465 </section> 466 467 } 468 <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> 469 470 471 </div> 472 } 473 else 474 { 475 <section><div class="container mt-4 mb-4 text-center"><h4>@Translate("Smartpage:Mitboligsalg.NoItemsForSale", "Ingen boliger til salg")</h4></div></section> 476 477 } 478 479 } 480 481 } 482