public Task <DiscountDetailData> LoadDiscountDetail(string documentId) { return(Task.Run(() => { var discountRec = _database.Table <Discount>().FirstOrDefault(i => i.DocumentId == documentId); if (discountRec == null) { return null; } var discountCategories = _database.Table <DiscountCategory>(); var discountsStrings = _database.Table <DiscountsStrings>(); var langStrings = _database.Table <LangString>(); var webAddresses = _database.Table <WebAddress>(); var galleryImages = _database.Table <GalleryImage>(); var discountRatings = _database.Table <DiscountRating>(); var personalRatings = _database.Table <PersonalRating>(); var nameRec = discountsStrings .Where(i => i.OwnerId == discountRec.Id && i.Appointment == StrAppointmentTitle) .Join(langStrings, i => i.LangStringId, i => i.Id, (ds, ls) => ls) .FirstOrDefault(i => i.LanguageCode == AppParameters.Config.SystemLang.LangEnumToCode()); var descriptionRec = discountsStrings .Where(i => i.OwnerId == discountRec.Id && i.Appointment == StrAppointmentDescription) .Join(langStrings, i => i.LangStringId, i => i.Id, (ds, ls) => ls) .FirstOrDefault(i => i.LanguageCode == AppParameters.Config.SystemLang.LangEnumToCode()); var categories = discountCategories.Where(i => i.DiscountId == discountRec.Id) .Join(AppData.Discount.CategoryCollection, i => i.CategoryId, i => i.DocumentId, (dc, c) => c) .ToList(); var webAddressRecs = webAddresses.Where(i => i.DiscountId == discountRec.Id).OrderBy(i => i.Category) .Select(i => new WebAddressData(i)).ToList(); var galleryImagesRecs = galleryImages.Where(i => i.DiscountId == discountRec.Id).OrderBy(i => i.Id) .Select(i => new GalleryImageData(i)).ToList(); var discontRatingRec = discountRatings.Where(i => i.PartnerId == discountRec.DocumentId) .Select(i => new DiscountRatingData(i)).FirstOrDefault(); var personalRatingRec = personalRatings.Where(i => i.PartnerId == discountRec.DocumentId) .Select(i => new PersonalRatingData(i)).FirstOrDefault(); var branches = new List <DiscountDetailBranchData>(); var contactList = _database.Table <Contact>().Where(i => i.DiscountId == discountRec.Id).ToList(); foreach (var contactRec in contactList) { var addressRec = discountsStrings .Where(i => i.OwnerId == contactRec.Id && i.Appointment == StrAppointmentAddress) .Join(langStrings, i => i.LangStringId, i => i.Id, (ds, ls) => ls) .FirstOrDefault(i => i.LanguageCode == AppParameters.Config.SystemLang.LangEnumToCode()); var discountDetailBranchData = new DiscountDetailBranchData { DocumentId = contactRec.DocumentId, Latitude = contactRec.Latitude, Longitude = contactRec.Longitude, Address = addressRec?.Text, Phone1 = contactRec.Phone1, Phone2 = contactRec.Phone2 }; branches.Add(discountDetailBranchData); } return new DiscountDetailData { DocumentId = discountRec.DocumentId, Persent = discountRec.PercentValue, DiscountType = discountRec.DiscountType.GetDiscountTypeName(), ImageFileName = discountRec.ImageFileName, Title = nameRec?.Text, Description = descriptionRec?.Text, CategoryList = categories, WebAddresses = webAddressRecs, BranchList = branches, GalleryImages = galleryImagesRecs, DiscountRating = discontRatingRec, PersonalRating = personalRatingRec }; })); }
public DiscountDetailData LoadDiscountDetail(string ID) { DiscountDetailData discountDetail = new DiscountDetailData(); var discountRec = (from d in database.Table <Discount>() where d.DocumentId == ID select d).FirstOrDefault(); if (discountRec == null) { return(null); } discountDetail.Persent = discountRec.PercentValue; discountDetail.UrlAddress = discountRec.UrlAddress; discountDetail.LogoFileName = discountRec.LogoFileName; discountDetail.ImageFileName = discountRec.ImageFileName; var titleRec = (from ds in database.Table <DiscountsStrings>() from ls in database.Table <LangString>() where ds.LangStringId == ls.Id where ds.OwnerId == discountRec.Id where ds.Appointment == StrAppointmentTitle where ls.LanguageCode == LanguageHelper.LangEnumToCode(AppParameters.Config.SystemLang) select new { ls.Text }).FirstOrDefault(); if (titleRec != null) { discountDetail.Title = titleRec.Text; } var descriptionRec = (from ds in database.Table <DiscountsStrings>() from ls in database.Table <LangString>() where ds.LangStringId == ls.Id where ds.OwnerId == discountRec.Id where ds.Appointment == StrAppointmentDescription where ls.LanguageCode == LanguageHelper.LangEnumToCode(AppParameters.Config.SystemLang) select new { ls.Text }).FirstOrDefault(); if (descriptionRec != null) { discountDetail.Description = descriptionRec.Text; } var categoryList = from c in database.Table <Categorie>() where c.DiscountId == discountRec.Id select c; foreach (var categoryrec in categoryList) { discountDetail.CategorieList.Add(new CategorieData { TypeCode = categoryrec.TypeCode }); } var contactList = from c in database.Table <Contact>() where c.DiscountId == discountRec.Id select c; foreach (var contactRec in contactList) { DiscountDetailBranchData discountDetailBranchData = new DiscountDetailBranchData(); discountDetailBranchData.DocumentId = contactRec.DocumentId; discountDetailBranchData.Latitude = contactRec.Latitude; discountDetailBranchData.Longitude = contactRec.Longitude; var addressRec = (from ds in database.Table <DiscountsStrings>() from ls in database.Table <LangString>() where ds.LangStringId == ls.Id where ds.OwnerId == contactRec.Id where ds.Appointment == StrAppointmentAddress where ls.LanguageCode == LanguageHelper.LangEnumToCode(AppParameters.Config.SystemLang) select new { ls.Text }).FirstOrDefault(); if (addressRec != null) { discountDetailBranchData.Address = addressRec.Text; } discountDetailBranchData.PhoneList.Add(contactRec.Phone1); discountDetailBranchData.PhoneList.Add(contactRec.Phone2); discountDetail.BranchList.Add(discountDetailBranchData); } return(discountDetail); }