partial void Merge(Skin entity, SkinDTO dto, object state) { if (state == null) { throw new ArgumentNullException("state", "Precondition: state is IResponse"); } var response = state as IResponse; if (response == null) { throw new ArgumentException("Precondition: state is IResponse", "state"); } entity.Culture = response.Culture; entity.SkinId = dto.Id; entity.Name = dto.Name; if (dto.Flags != null) { entity.Flags = this.skinFlagsConverter.Convert(dto.Flags, state); } if (dto.Restrictions != null) { entity.Restrictions = this.itemRestrictionsConverter.Convert(dto.Restrictions, state); } // Process the URI. Note since the V2 api the URI doesn't have to be built by hand anymore. // It is stored as a a string in the response. // Question: Shouled we split the URI for user convenience or not?? // TODO: yes we should split the URI. Not for convencience, but because 'Skin' implements 'IRenderable' entity.IconFileUrl = new Uri(dto.IconUrl, UriKind.Absolute); }
public OperationDetails CreateSkin(SkinDTO item) { if (item == null) { return(new OperationDetails(false, "ОбЪект ссылается на null", this.ToString())); } Skin _skin = _mappers.ToSkin.Map <SkinDTO, Skin>(item); if (_skin == null) { return(new OperationDetails(false, "Не удалось преобразовать объект", this.ToString())); } Game _game = Database.Games.Find(x => x.Name == item.Game.Name)?.FirstOrDefault(); if (_game == null) { return(new OperationDetails(false, "Не удалось найти игру с таким названием", this.ToString())); } _skin.Game = _game; SkinRarity _skinRarity = Database.SkinRareties.Find(x => x.RarityName == item.SkinRarity.RarityName)?.FirstOrDefault(); if (_skinRarity == null) { _skinRarity = new SkinRarity { RarityName = item.SkinRarity.RarityName }; } _skin.SkinRarity = _skinRarity; SkinType _skinType = Database.SkinTypes.Find(x => x.TypeName == item.SkinType.TypeName)?.FirstOrDefault(); if (_skinType == null) { _skinType = new SkinType { TypeName = item.SkinType.TypeName }; } foreach (var i in item.Images) { if (i != null) { Image image = Database.Images.Find(x => x.Photo == i.Photo)?.FirstOrDefault(); if (image == null) { image = new Image() { Photo = i.Photo, Text = i.Text }; } _skin.Images.Add(image); } } _skin.SkinType = _skinType; Database.Skins.Add(_skin); Database.Save(); return(new OperationDetails(true, "Скин успешно создан", this.ToString())); }
partial void Merge(WeaponSkin entity, SkinDTO dto, object state) { var weapon = dto.Weapon; if (weapon == null) { return; } entity.DamageType = this.damageTypeConverter.Convert(weapon.DamageType, weapon); }
partial void Merge(ArmorSkin entity, SkinDTO dto, object state) { var armor = dto.Armor; if (armor == null) { return; } entity.WeightClass = this.weightClassConverter.Convert(armor.WeightClass, armor); }
partial void Merge(ArmorSkin entity, SkinDTO dto, object state) { var details = dto.Details; if (details == null) { return; } if (details.WeightClass != null) { entity.WeightClass = this.weightClassConverter.Convert(details.WeightClass, details); } }
partial void Merge(WeaponSkin entity, SkinDTO dto, object state) { var details = dto.Details; if (details == null) { return; } if (details.DamageClass != null) { entity.DamageType = this.damageClassConverter.Convert(details.DamageClass, details); } }
partial void Merge(Skin entity, SkinDTO dto, object state) { int skinId; if (int.TryParse(dto.SkinId, out skinId)) { entity.SkinId = skinId; } entity.Name = dto.Name; var flags = dto.Flags; if (flags != null) { entity.Flags = this.skinFlagsConverter.Convert(flags, dto); } var restrictions = dto.Restrictions; if (restrictions != null) { entity.Restrictions = this.itemRestrictionsConverter.Convert(restrictions, dto); } int iconFileId; if (int.TryParse(dto.IconFileId, out iconFileId)) { entity.IconFileId = iconFileId; } // Set the icon file signature entity.IconFileSignature = dto.IconFileSignature; // Set the icon file URL const string IconUrlTemplate = @"https://render.guildwars2.com/file/{0}/{1}.{2}"; var iconUrl = string.Format(IconUrlTemplate, dto.IconFileSignature, dto.IconFileId, "png"); entity.IconFileUrl = new Uri(iconUrl, UriKind.Absolute); }
public OperationDetails UpdateSkin(ProductDTO product, SkinDTO item, string oldSkinName) { if (product == null || item == null) { return(new OperationDetails(false, "ОбЪект ссылается на null", this.ToString())); } Product localProduct = UpdateProduct(product); Database.Products.Update(localProduct); Skin oldSkin = Database.Skins.Find(s => s.Name == oldSkinName).FirstOrDefault(); if (oldSkin == null) { return(new OperationDetails(false, "Не удалось найти объект", this.ToString())); } if (oldSkin.Game.Name != item.Game.Name) { Game game = Database.Games.Find(x => x.Name == item.Game.Name)?.FirstOrDefault(); if (game == null) { return(new OperationDetails(false, "Не удалось найти игру с таким названием", this.ToString())); } oldSkin.Game = game; } if (oldSkin.SkinRarity.RarityName != item.SkinRarity.RarityName) { SkinRarity skinRarity = Database.SkinRareties.Find(x => x.RarityName == item.SkinRarity.RarityName)?.FirstOrDefault(); if (skinRarity == null) { return(new OperationDetails(false, "Не удалось найти раритетность с таким названием", this.ToString())); } oldSkin.SkinRarity = skinRarity; } oldSkin.Properties = _mappers.ToProperty.Map <IEnumerable <PropertyDTO>, ICollection <Property> >(item.Properties); Database.Skins.Update(oldSkin); Database.Save(); return(new OperationDetails(true, "Скин успешно изменён", this.ToString())); }
public ActionResult SkinDetails(int?id) { if (id != null) { SkinDTO result = _service.ServiceForCRUD.GetSkin(id); if (result != null) { SkinDetailsView skin = new SkinDetailsView(); skin.IsSkinAlreadyInBasket = false; skin.IsSkinAlreadyInFavorites = false; skin.Skin = _mappers.ToSkinDM.Map <SkinDTO, SkinDM>(result); ClientProfileDM client = _mappers.ToClientProfileDM.Map <ClientProfileDTO, ClientProfileDM>(_service.StoreService.GetClientDTO(User.Identity.Name)); if (client != null) { foreach (var i in client.Favorites.FavoritesSkins) { if (i.Id == id) { skin.IsSkinAlreadyInFavorites = true; } } foreach (var i in client.Basket.Skins) { if (i.Id == id) { skin.IsSkinAlreadyInBasket = true; skin.IsSkinAlreadyInFavorites = true; } } } return(View(skin)); } } return(RedirectToAction("PageNotFound")); }
public ActionResult CreateSkin(SkinCreateVM item) { if (ModelState.IsValid) { ProductDTO product = new ProductDTO() { Name = item.Name, Price = item.Price, Sale = item.Sale }; SkinDTO skin = new SkinDTO(); if (item.Images != null) { foreach (var i in item.Images) { ImageDTO image = new ImageDTO(); image.Text = item.Alt; using (var reader = new BinaryReader(i.InputStream)) image.Photo = reader.ReadBytes(i.ContentLength); product.Images = new List <ImageDTO>(); product.Images.Add(image); } } else { product.Images = new List <ImageDTO>(); foreach (var i in item.ImagesInDatebase) { product.Images.Add(_mappers.ToImageDTO.Map <ImageDM, ImageDTO>(i)); } } if (item.Game != "") { skin.Game = new GameDTO() { Name = item.Game } } ; if (item.SkinRarity != "") { SkinRarityDTO skinRarity = new SkinRarityDTO() { RarityName = item.SkinRarity }; skin.SkinRarity = skinRarity; } if (item.SkinType != "") { PropertyDTO skinType = new PropertyDTO() { Name = "Тип скина", Value = item.SkinType }; skin.Properties = new List <PropertyDTO>(); skin.Properties.Add(skinType); } if (item.Description != "") { product.Description = item.Description; } OperationDetails result = _adminService.CreateSkin(product, skin, product.Name); ViewBag.Result = result.Message; ViewBag.Status = result.Succedeed; List <GameDM> games = _mappers.ToGameDM.Map <ICollection <GameDTO>, List <GameDM> >(_adminService.GetGames()); var gameItems = games.Select(x => new SelectListItem() { Text = x.Name, Value = x.Name }).ToList(); List <SkinRaretyDM> skinRar = _mappers.ToSkinRarityDM.Map <ICollection <SkinRarityDTO>, List <SkinRaretyDM> >(_adminService.GetSkinRarities()); var skinRarityItems = skinRar.Select(x => new SelectListItem() { Text = x.RarityName, Value = x.RarityName }).ToList(); item.Games = gameItems; item.SkinRarities = skinRarityItems; return(View(item)); } else { return(View()); } }
public ActionResult CreateSkin([Bind(Include = "Game")] SkinCreateVM item) { if (ModelState.IsValid) { SkinDTO skin = new SkinDTO() { Name = item.Name, Price = item.Price, Sale = item.Sale }; if (item.Image != null) { ImageDTO image = new ImageDTO(); image.Text = item.Alt; using (var reader = new BinaryReader(item.Image.InputStream)) image.Photo = reader.ReadBytes(item.Image.ContentLength); skin.Images = new List <ImageDTO>(); skin.Images.Add(image); } if (item.Game != "") { skin.Game = new GameDTO() { Name = item.Game } } ; if (item.SkinRarity != "") { SkinRarityDTO skinRarity = new SkinRarityDTO() { Color = item.SkinRarityColor, RarityName = item.SkinRarity }; skin.SkinRarity = skinRarity; } if (item.SkinType != "") { SkinTypeDTO skinType = new SkinTypeDTO() { TypeName = item.SkinType }; skin.SkinType = skinType; } if (item.Description != "") { skin.Description = item.Description; } OperationDetails result = _service.ServiceForCRUD.CreateSkin(skin); ViewBag.Result = result.Message; ViewBag.Status = result.Succedeed; return(View()); } else { return(View()); } }
public OperationDetails UpdateSkin(SkinDTO item) { if (item == null) { return(new OperationDetails(false, "ОбЪект ссылается на null", this.ToString())); } Skin _oldSkin = Database.Skins.Get(item.Id); if (_oldSkin == null) { return(new OperationDetails(false, "Не удалось найти объект", this.ToString())); } if (_oldSkin.Game.Name != item.Game.Name) { Game _game = Database.Games.Find(x => x.Name == item.Game.Name)?.FirstOrDefault(); if (_game == null) { return(new OperationDetails(false, "Не удалось найти игру с таким названием", this.ToString())); } _oldSkin.Game = _game; } if (_oldSkin.SkinRarity.RarityName != _oldSkin.SkinRarity.RarityName) { SkinRarity _skinRarity = Database.SkinRareties.Find(x => x.RarityName == item.SkinRarity.RarityName)?.FirstOrDefault(); if (_skinRarity == null) { _skinRarity = new SkinRarity { RarityName = item.SkinRarity.RarityName }; } _oldSkin.SkinRarity = _skinRarity; } if (_oldSkin.SkinType.TypeName != item.SkinType.TypeName) { SkinType _skinType = Database.SkinTypes.Find(x => x.TypeName == item.SkinType.TypeName)?.FirstOrDefault(); if (_skinType == null) { _skinType = new SkinType { TypeName = item.SkinType.TypeName }; } _oldSkin.SkinType = _skinType; } foreach (var i in item.Images) { if (i != null && i.Photo != _oldSkin.Images.FirstOrDefault().Photo) { Image image = Database.Images.Find(x => x.Photo == i.Photo)?.FirstOrDefault(); if (image == null) { image = new Image() { Photo = i.Photo, Text = i.Text }; } _oldSkin.Images.Add(image); } } _oldSkin.Name = item.Name; _oldSkin.Price = item.Price; _oldSkin.Sale = item.Sale; Database.Skins.Update(_oldSkin); Database.Save(); return(new OperationDetails(true, "Скин успешно изменён", this.ToString())); }
public OperationDetails CreateSkin(ProductDTO product, SkinDTO item, string oldSkin) { Product productInDB = Database.Products.Find(p => p.Name == oldSkin).FirstOrDefault(); if (productInDB != null) { return(UpdateSkin(product, item, oldSkin)); } if (item == null || product == null) { return(new OperationDetails(false, "ОбЪект ссылается на null", this.ToString())); } Skin skin = _mappers.ToSkin.Map <SkinDTO, Skin>(item); if (skin == null) { return(new OperationDetails(false, "Не удалось преобразовать объект", this.ToString())); } if (skin.SkinRarity != null) { SkinRarity rarity = Database.SkinRareties.Find(r => r.RarityName == skin.SkinRarity.RarityName).FirstOrDefault(); if (rarity == null) { return(new OperationDetails(false, "Не удалось найти раритетность с таким названием", this.ToString())); } skin.SkinRarity = rarity; } if (skin.Game != null) { Game game = Database.Games.Find(g => g.Name == skin.Game.Name).FirstOrDefault(); if (game == null) { return(new OperationDetails(false, "Не удалось найти игру с таким названием", this.ToString())); } skin.Game = game; } skin.Name = product.Name; Database.Skins.Add(skin); Database.Save(); Product localProduct = _mappers.ToProduct.Map <ProductDTO, Product>(product); if (localProduct == null) { return(new OperationDetails(false, "Не удалось преобразовать объект", this.ToString())); } localProduct = CreateProduct(localProduct); localProduct.Table = Goods.Skin; Skin skinInDB = Database.Skins.Find(x => x.Name == localProduct.Name).FirstOrDefault(); if (skinInDB == null) { return(new OperationDetails(false, "Не удалось найти объект", this.ToString())); } localProduct.FromTableId = skinInDB.Id; Database.Products.Add(localProduct); Database.Save(); return(new OperationDetails(true, "Скин был успешно добавлен", this.ToString())); }