Exemplo n.º 1
0
        public Task SyncContact(DeserializeBranchItem item)
        {
            return(Task.Run(() =>
            {
                var contact = _database.Table <Contact>().FirstOrDefault(i => i.DocumentId == item.Id);

                if (item.IsDeleted)
                {
                    if (contact != null)
                    {
                        _database.BeginTransaction();

                        _database.Table <Contact>().Delete(i => i.Id == contact.Id);
                        _database.Table <DiscountsStrings>()
                        .Where(i => i.OwnerId == contact.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 == contact.Id && i.Appointment == StrAppointmentAddress);

                        _database.Commit();
                    }
                }
                else
                {
                    SaveContact(item, contact);
                }
            }));
        }
Exemplo n.º 2
0
        public MapPinData(DeserializeBranchItem deserializeBranch) : this()
        {
            NumberFormatInfo format = new NumberFormatInfo();

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

            foreach (var item in deserializeBranch.Categories)
            {
                var categorie = new CategorieData();
                int typeCode  = 0;
                int.TryParse(item.Type, out typeCode);
                categorie.TypeCode = typeCode;
                foreach (var itemName in item.Name)
                {
                    categorie.SetName(itemName.Lan, itemName.LocText);
                }
                _categorieList.Add(categorie);
            }

            if (_categorieList.Count > 0)
            {
                _primaryCategory = _categorieList[0];
            }
            else
            {
                _primaryCategory = new CategorieData {
                    TypeCode = -1
                }
            };

            try
            {
                _discount = deserializeBranch.Discounts[0].Name[0].LocText;
            }
            catch
            {
                _discount = "0";
            }

            _latitude  = Double.Parse(deserializeBranch.Location.Coordinates.Latitude, format);
            _longitude = Double.Parse(deserializeBranch.Location.Coordinates.Longitude, format);
            _id        = deserializeBranch.Id;
            _partnerId = deserializeBranch.PartnerId;

            foreach (var item in deserializeBranch.Name)
            {
                SetName(item.Lan, item.LocText);
            }
        }
Exemplo n.º 3
0
        public Task SyncDiscount(DeserializeBranchItem item)
        {
            return(Task.Run(async() =>
            {
                var discount = _database.Table <Discount>().FirstOrDefault(i => i.DocumentId == item.Id);

                if (item.IsDeleted)
                {
                    if (discount != null)
                    {
                        _database.BeginTransaction();

                        _database.Table <Discount>().Delete(i => i.Id == discount.Id);
                        _database.Table <WebAddress>().Delete(i => i.DiscountId == discount.Id);
                        _database.Table <DiscountCategory>().Delete(i => i.DiscountId == discount.Id);
                        _database.Table <DiscountsStrings>()
                        .Where(i => i.OwnerId == discount.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 == discount.Id && (i.Appointment == StrAppointmentTitle ||
                                                                                                 i.Appointment == StrAppointmentDescription));

                        var logoFileName = discount.DocumentId + PostfixLogoFileName;
                        DeleteImage(logoFileName);

                        var imgFileName = discount.DocumentId + PostfixImgFileName;
                        DeleteImage(imgFileName);

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

                        _database.Commit();
                    }
                }
                else
                {
                    await SaveDiscount(item, discount);
                }
            }));
        }
Exemplo n.º 4
0
        public DiscountData(DeserializeBranchItem branchItem) : this()
        {
            _documentId = branchItem.Id;
            _partnerId  = branchItem.PartnerId;

            foreach (var item in branchItem.Name)
            {
                SetName(item.Lan, item.LocText);
            }

            foreach (var item in branchItem.Description)
            {
                SetDescription(item.Lan, item.LocText);
            }

            if (branchItem.Discounts.Count > 0 && branchItem.Discounts[0].Name.Count > 0)
            {
                _discountPercent = branchItem.Discounts[0].Name[0].LocText;
            }

            foreach (var item in branchItem.Categories)
            {
                var categorie = new CategorieData();
                int typeCode  = 0;
                int.TryParse(item.Type, out typeCode);
                categorie.TypeCode = typeCode;
                foreach (var itemName in item.Name)
                {
                    categorie.SetName(itemName.Lan, itemName.LocText);
                }
                _categorieList.Add(categorie);
            }

            _urlAddress = branchItem.Url;

            _icon = branchItem.Icon;
        }
Exemplo n.º 5
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();
        }
Exemplo n.º 6
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();
        }
Exemplo n.º 7
0
        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();
        }