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