public async Task SaveDiscount(DiscountData discount)
        {
            database.BeginTransaction();
            string logoFileName = discount.DocumentId + PostfixLogoFileName;

            await SaveImage(logoFileName, discount.Icon);

            Discount discountDBData = new Discount
            {
                UrlAddress        = discount.UrlAddress,
                IsFullDescription = false,
                DocumentId        = discount.DocumentId,
                LogoFileName      = logoFileName
            };

            discountDBData.PercentValue = discount.DiscountPercent;

            database.Insert(discountDBData);

            //name
            foreach (var name in discount.NameList)
            {
                LangString langStringRec = new LangString {
                    LanguageCode = LanguageHelper.LangEnumToCode(name.Key).ToUpper(), Text = name.Value
                };
                database.Insert(langStringRec);

                DiscountsStrings discountsStringsRec = new DiscountsStrings {
                    Appointment = StrAppointmentTitle, OwnerId = discountDBData.Id, LangStringId = langStringRec.Id
                };
                database.Insert(discountsStringsRec);
            }

            //description
            foreach (var name in discount.DescriptionList)
            {
                LangString langStringRec = new LangString {
                    LanguageCode = LanguageHelper.LangEnumToCode(name.Key).ToUpper(), Text = name.Value
                };
                database.Insert(langStringRec);

                DiscountsStrings discountsStringsRec = new DiscountsStrings {
                    Appointment = StrAppointmentDescription, OwnerId = discountDBData.Id, LangStringId = langStringRec.Id
                };
                database.Insert(discountsStringsRec);
            }

            //categories
            foreach (var categorie in discount.CategorieList)
            {
                Categorie categorieRec = new Categorie {
                    DiscountId = discountDBData.Id, TypeCode = categorie.TypeCode
                };
                database.Insert(categorieRec);
            }

            database.Commit();
        }
Exemple #2
0
        private void SaveCategory(DeserializeCategoryItem categoryItem, Category categoryDbData)
        {
            _database.BeginTransaction();

            if (categoryDbData != null)
            {
                _database.Table <DiscountsStrings>()
                .Where(i => i.OwnerId == categoryDbData.Id && i.Appointment == StrAppointmentCategory)
                .Select(i => i.LangStringId).ForEach(i => _database.Table <LangString>().Delete(j => j.Id == i));
                _database.Table <DiscountsStrings>().Delete(i =>
                                                            i.OwnerId == categoryDbData.Id && i.Appointment == StrAppointmentCategory);

                categoryDbData.DocumentId = categoryItem.Id;
                categoryDbData.Color      = categoryItem.Color;
                categoryDbData.Modified   = categoryItem.Modified ?? DateTime.UtcNow;

                _database.Update(categoryDbData);
            }
            else
            {
                categoryDbData = new Category
                {
                    DocumentId = categoryItem.Id,
                    Color      = categoryItem.Color,
                    Modified   = categoryItem.Modified ?? DateTime.UtcNow
                };

                _database.Insert(categoryDbData);
            }

            #region save children

            if (categoryItem.Name != null)
            {
                foreach (var name in categoryItem.Name)
                {
                    var langStringRec = new LangString
                    {
                        LanguageCode = name.Lan.ToUpper(),
                        Text         = name.LocText
                    };
                    _database.Insert(langStringRec);

                    var discountsStringsRec = new DiscountsStrings
                    {
                        Appointment  = StrAppointmentCategory,
                        OwnerId      = categoryDbData.Id,
                        LangStringId = langStringRec.Id
                    };
                    _database.Insert(discountsStringsRec);
                }
            }

            #endregion

            _database.Commit();
        }
Exemple #3
0
        private void SaveContact(DeserializeBranchItem branchItem, Contact contactDbData)
        {
            var discountDbData = _database.Table <Discount>().FirstOrDefault(i => i.DocumentId == branchItem.PartnerId);

            if (discountDbData == null)
            {
                return;
            }

            var format = new NumberFormatInfo
            {
                NumberGroupSeparator   = ",",
                NumberDecimalSeparator = "."
            };

            _database.BeginTransaction();

            if (contactDbData != null)
            {
                _database.Table <DiscountsStrings>()
                .Where(i => i.OwnerId == contactDbData.Id && i.Appointment == StrAppointmentAddress)
                .Select(i => i.LangStringId).ForEach(i => _database.Table <LangString>().Delete(j => j.Id == i));
                _database.Table <DiscountsStrings>().Delete(i =>
                                                            i.OwnerId == contactDbData.Id && i.Appointment == StrAppointmentAddress);

                contactDbData.DiscountId = discountDbData.Id;
                contactDbData.DocumentId = branchItem.Id;
                contactDbData.Latitude   = double.Parse(branchItem.Location.Coordinates.Latitude, format);
                contactDbData.Longitude  = double.Parse(branchItem.Location.Coordinates.Longitude, format);
                contactDbData.Modified   = branchItem.Modified ?? DateTime.UtcNow;
                contactDbData.Phone1     = branchItem.Phones?.ElementAtOrDefault(0)?.Number;
                contactDbData.Phone2     = branchItem.Phones?.ElementAtOrDefault(1)?.Number;

                _database.Update(contactDbData);
            }
            else
            {
                contactDbData = new Contact
                {
                    DiscountId = discountDbData.Id,
                    DocumentId = branchItem.Id,
                    Latitude   = double.Parse(branchItem.Location.Coordinates.Latitude, format),
                    Longitude  = double.Parse(branchItem.Location.Coordinates.Longitude, format),
                    Modified   = branchItem.Modified ?? DateTime.UtcNow,
                    Phone1     = branchItem.Phones?.ElementAtOrDefault(0)?.Number,
                    Phone2     = branchItem.Phones?.ElementAtOrDefault(1)?.Number
                };

                _database.Insert(contactDbData);
            }

            #region save children

            if (branchItem.Address != null)
            {
                foreach (var address in branchItem.Address)
                {
                    var langStringRec = new LangString
                    {
                        LanguageCode = address.Lan.ToUpper(),
                        Text         = address.LocText
                    };
                    _database.Insert(langStringRec);

                    var discountsStringsRec = new DiscountsStrings
                    {
                        Appointment  = StrAppointmentAddress,
                        OwnerId      = contactDbData.Id,
                        LangStringId = langStringRec.Id
                    };
                    _database.Insert(discountsStringsRec);
                }
            }

            #endregion

            _database.Commit();
        }
Exemple #4
0
        private async Task SaveDiscount(DeserializeBranchItem branchItem, Discount discountDbData)
        {
            string logoFileName;

            if (!string.IsNullOrEmpty(branchItem.Icon))
            {
                logoFileName = branchItem.Id + PostfixLogoFileName;
                await SaveImage(logoFileName, branchItem.Icon);
            }
            else
            {
                logoFileName = null;
            }

            _database.BeginTransaction();

            if (discountDbData != null)
            {
                _database.Table <WebAddress>().Delete(i => i.DiscountId == discountDbData.Id);
                _database.Table <DiscountCategory>().Delete(i => i.DiscountId == discountDbData.Id);
                _database.Table <DiscountsStrings>()
                .Where(i => i.OwnerId == discountDbData.Id &&
                       (i.Appointment == StrAppointmentTitle || i.Appointment == StrAppointmentDescription))
                .Select(i => i.LangStringId).ForEach(i => _database.Table <LangString>().Delete(j => j.Id == i));
                _database.Table <DiscountsStrings>().Delete(i =>
                                                            i.OwnerId == discountDbData.Id &&
                                                            (i.Appointment == StrAppointmentTitle || i.Appointment == StrAppointmentDescription));

                var images = _database.Table <GalleryImage>().Where(i => i.DiscountId == discountDbData.Id)
                             .Select(i => i.FileName);
                DeleteGallery(images);
                _database.Table <GalleryImage>().Delete(i => i.DiscountId == discountDbData.Id);

                discountDbData.DocumentId    = branchItem.Id;
                discountDbData.LogoFileName  = logoFileName;
                discountDbData.ImageFileName = null;
                discountDbData.PercentValue  = branchItem.Discounts.FirstOrDefault()?.Name?.FirstOrDefault()?.LocText;
                discountDbData.DiscountType  = branchItem.Discounts.FirstOrDefault()?.DiscountType;
                discountDbData.Modified      = branchItem.Modified ?? DateTime.UtcNow;

                _database.Update(discountDbData);
            }
            else
            {
                discountDbData = new Discount
                {
                    DocumentId    = branchItem.Id,
                    LogoFileName  = logoFileName,
                    ImageFileName = null,
                    PercentValue  = branchItem.Discounts.FirstOrDefault()?.Name?.FirstOrDefault()?.LocText,
                    DiscountType  = branchItem.Discounts.FirstOrDefault()?.DiscountType,
                    Modified      = branchItem.Modified ?? DateTime.UtcNow
                };

                _database.Insert(discountDbData);
            }

            #region save children

            if (branchItem.Name != null)
            {
                foreach (var name in branchItem.Name)
                {
                    var langStringRec = new LangString
                    {
                        LanguageCode = name.Lan.ToUpper(),
                        Text         = name.LocText
                    };
                    _database.Insert(langStringRec);

                    var discountsStringsRec = new DiscountsStrings
                    {
                        Appointment  = StrAppointmentTitle,
                        OwnerId      = discountDbData.Id,
                        LangStringId = langStringRec.Id
                    };
                    _database.Insert(discountsStringsRec);
                }
            }

            if (branchItem.Description != null)
            {
                foreach (var name in branchItem.Description)
                {
                    var langStringRec = new LangString
                    {
                        LanguageCode = name.Lan.ToUpper(),
                        Text         = name.LocText
                    };
                    _database.Insert(langStringRec);

                    var discountsStringsRec = new DiscountsStrings
                    {
                        Appointment  = StrAppointmentDescription,
                        OwnerId      = discountDbData.Id,
                        LangStringId = langStringRec.Id
                    };
                    _database.Insert(discountsStringsRec);
                }
            }

            if (branchItem.CategoryIds != null)
            {
                foreach (var category in branchItem.CategoryIds)
                {
                    var categorieRec = new DiscountCategory
                    {
                        DiscountId = discountDbData.Id,
                        CategoryId = category
                    };
                    _database.Insert(categorieRec);
                }
            }

            if (branchItem.WebAddresses != null)
            {
                foreach (var webAddress in branchItem.WebAddresses)
                {
                    var webAddressRec = new WebAddress
                    {
                        DiscountId = discountDbData.Id,
                        Category   = webAddress.Category,
                        Url        = webAddress.Url
                    };
                    _database.Insert(webAddressRec);
                }
            }

            #endregion

            _database.Commit();
        }
        public async Task UpdateDiscount(DeserializeBranchItem branchItem)
        {
            NumberFormatInfo format = new NumberFormatInfo();

            format.NumberGroupSeparator   = ",";
            format.NumberDecimalSeparator = ".";

            Discount discountDBData = database.Table <Discount>().FirstOrDefault(x => x.DocumentId == branchItem.PartnerId);

            if (discountDBData == null)
            {
                return;
            }

            database.BeginTransaction();

            if (!String.IsNullOrWhiteSpace(branchItem.Image))
            {
                string imgFileName = discountDBData.DocumentId + PostfixImgFileName;
                await SaveImage(imgFileName, branchItem.Image);

                discountDBData.ImageFileName     = imgFileName;
                discountDBData.IsFullDescription = true;
                database.Update(discountDBData);

                var discount = AppData.Discount.DiscountCollection.FirstOrDefault <DiscountData>(x => x.DocumentId == discountDBData.DocumentId);
                if (discount != null)
                {
                    discount.IsFullDescription = true;
                }
            }

            Contact contactDBData = database.Table <Contact>().FirstOrDefault(x => x.DiscountId == discountDBData.Id && x.DocumentId == branchItem.Id);

            if (contactDBData == null)
            {
                contactDBData = new Contact();
                database.Insert(contactDBData);
            }

            contactDBData.DiscountId = discountDBData.Id;
            contactDBData.DocumentId = branchItem.Id;
            contactDBData.Latitude   = Double.Parse(branchItem.Location.Coordinates.Latitude, format);
            contactDBData.Longitude  = Double.Parse(branchItem.Location.Coordinates.Longitude, format);

            if (branchItem.Address != null)
            {
                foreach (var address in branchItem.Address)
                {
                    LangString langStringRec = new LangString {
                        LanguageCode = address.Lan.ToUpper(), Text = address.LocText
                    };
                    database.Insert(langStringRec);

                    DiscountsStrings discountsStringsRec = new DiscountsStrings {
                        Appointment = StrAppointmentAddress, OwnerId = contactDBData.Id, LangStringId = langStringRec.Id
                    };
                    database.Insert(discountsStringsRec);
                }
            }

            if (branchItem.Phones != null)
            {
                if (branchItem.Phones.Count > 0)
                {
                    contactDBData.Phone1 = branchItem.Phones[0].Number;
                }

                if (branchItem.Phones.Count > 1)
                {
                    contactDBData.Phone2 = branchItem.Phones[1].Number;
                }
            }

            database.Update(contactDBData);

            database.Commit();
        }