public static Models.Image CreateDefaultImage(string name, WebImageType type)
        {
            string    defaultPath = "";
            ImageType imageType;

            switch (type)
            {
            case WebImageType.AVATAR:
                defaultPath = "/Image/Games/Default/Default.jpg";
                imageType   = ImageType.AVATAR;
                break;

            case WebImageType.COVER:
                defaultPath = "/Image/Games/Default/DefaultCover.jpg";
                imageType   = ImageType.COVER;
                break;

            case WebImageType.NOTIFICATION_IMAGE:
                defaultPath = "/Image/Games/Default/Default.jpg";
                imageType   = ImageType.NOTIFICATION_IMAGE;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
            //We create image instance and store it in database
            var defaultImage = new Models.Image()
            {
                Name      = name,
                ImagePath = defaultPath,
                Type      = imageType,
                CreatedAt = DateTime.Now,
                UpdatedAt = DateTime.Now
            };

            return(defaultImage);
        }
        public static Models.Image CreateWebImage(HttpPostedFileBase file, string name, WebImageType type)

        {
            string    baseAddressInMemory = "";
            ImageType imageType;

            switch (type)
            {
            case WebImageType.AVATAR:
                baseAddressInMemory = "/Image/Games/";
                imageType           = ImageType.AVATAR;
                break;

            case WebImageType.COVER:
                baseAddressInMemory = "/Image/Games/";
                imageType           = ImageType.COVER;
                break;

            case WebImageType.GAMEPLAY:
                baseAddressInMemory = "/Image/Games/";
                imageType           = ImageType.GAMEPLAY;
                break;

            case WebImageType.NOTIFICATION_IMAGE:
                baseAddressInMemory = "/Image/Notifications/";
                imageType           = ImageType.NOTIFICATION_IMAGE;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }


            string avatarPhotoFilePath = "";
            var    folderRandomIndex   = RandomHelper.RandomInt(0, 10000);
            var    fileRandomIndex     = RandomHelper.RandomInt(0, 10000);

            var avatarPhotoFileExtension = Path.GetExtension(file.FileName);

            Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~" + baseAddressInMemory + folderRandomIndex));

            var avatarPhotoFileName = fileRandomIndex + DateTime.Now.ToString("yy-MM-dd-hh-mm-ss") +
                                      avatarPhotoFileExtension;

            avatarPhotoFilePath = baseAddressInMemory + folderRandomIndex + "/" + avatarPhotoFileName;
            avatarPhotoFileName =
                Path.Combine(HttpContext.Current.Server.MapPath("~" + baseAddressInMemory + folderRandomIndex + "/"), avatarPhotoFileName);
            file.SaveAs(avatarPhotoFileName);

            //We create image instance and store it in database
            var webImage = new Models.Image()
            {
                Name      = name,
                ImagePath = avatarPhotoFilePath,
                Type      = imageType,
                CreatedAt = DateTime.Now,
                UpdatedAt = DateTime.Now
            };

            return(webImage);
        }