Esempio n. 1
0
        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
                };
            }));
        }
Esempio n. 2
0
        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);
        }