예제 #1
0
        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);
        }
예제 #2
0
        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()));
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
            }
        }
예제 #6
0
        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);
            }
        }
예제 #7
0
        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);
        }
예제 #8
0
        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"));
        }
예제 #10
0
 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());
            }
        }
예제 #12
0
        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()));
        }
예제 #13
0
        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()));
        }