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); } })); }
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); } }
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); } })); }
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; }
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(); }
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(); }