public async Task <JsonResult> CreateNewProductItem(AdminStoreItem newProductItem) { // newProductItem.DateCreate = UnixTime.UtcNow(); var newAdminItem = await _dbProvider.ContextActionAsync(async connection => { var maxId = _storeService.GetMaxStoreId(connection); maxId++; newProductItem.Id = maxId; var fullProductUrl = await _saveToCdnAndGetUrl(newProductItem); object props = new { }; switch (newProductItem.ProductType.Id) { case (byte)ProductTypeIds.Premium: props = ProductPropertyHelper.CreatePremuiumProperties( UnixTime.OneDayInSecond *newProductItem.Duration.Days); break; case (byte)ProductTypeIds.Booster: var boosterProps = newProductItem.Properties .ToSerealizeString() .ToSpecificModel <List <string> >()[0] .ToSpecificModel <BoosterProductProperty>(); boosterProps.Duration = UnixTime.OneDayInSecond *newProductItem.Duration.Days; props = boosterProps; break; } var newProductStoreDataModel = new ProductStoreDataModel { Id = newProductItem.Id, Property = new ProductItemProperty { ImgCollectionImg = new ImgCollectionField { Store = fullProductUrl, Chest = fullProductUrl }, TranslateText = newProductItem.L10N, Property = props }, ProductTypeId = (byte)newProductItem.ProductType.Id, Trash = !newProductItem.Active, Cost = (decimal)newProductItem.Price, Date = DateTime.UtcNow, CurrencyCode = newProductItem.Currency.Name }; var newItem = _storeService.AddOrUpdateProductItem(connection, newProductStoreDataModel); return(new AdminStoreItem(newItem, new AdminStoreData())); }); return(Json(newAdminItem)); }