Esempio n. 1
0
        public async Task Create(CreateDetailsViewModel details, string userId, string imagePath)
        {
            Directory.CreateDirectory($"{imagePath}/photos/");

            //var eye = Enum.TryParse(details.EyeColor, out EyesColor eyesColor);
            //var hair = Enum.TryParse(details.HairColor, out HairColor hairColor);

            //var wedding = Enum.TryParse(details.WeddingStatus, out WeddingStatus weddingStatus);
            //var whatYouSerachingFor = Enum.TryParse(details.WhatAreYouSearchingFor, out WhatAreYouSearchingFor whatAreYouSearchingFor);
            //var cities = Enum.TryParse(details.City, out City city);
            var userCharacteristic = new UserCharacteristic
            {
                FirstName              = details.FirstName,
                LastName               = details.LastName,
                City                   = details.City,
                Height                 = details.Height,
                Weight                 = details.Weight,
                EyeColor               = details.EyeColor,
                HairColor              = details.HairColor,
                Gender                 = details.Gender,
                Description            = details.Description,
                WeddingStatus          = details.WeddingStatus,
                WhatAreYouSearchingFor = details.WhatAreYouSearchingFor,
                CreatedOn              = DateTime.UtcNow,
                Date                   = details.Date,
                UserId                 = userId,
            };

            var extension = Path.GetExtension(details.Image.FileName).TrimStart('.');

            if (!this.allowedExtensions.Any(x => extension.EndsWith(x)))
            {
                throw new Exception($"Invalid image extension {extension}");
            }

            var photo = new Photo
            {
                UserId    = userId,
                Extension = extension,
            };
            var physicalPath = $"{imagePath}/photos/{photo.Id}.{extension}";

            using Stream fileStream = new FileStream(physicalPath, FileMode.Create);
            await details.Image.CopyToAsync(fileStream);

            userCharacteristic.PhotoId = photo.Id;
            photo.ImagePath            = physicalPath;
            await this.photosRepository.AddAsync(photo);

            await this.photosRepository.SaveChangesAsync();

            await this.usersRepository.AddAsync(userCharacteristic);

            await this.usersRepository.SaveChangesAsync();
        }
Esempio n. 2
0
        public async Task <IActionResult> Details(CreateDetailsViewModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }
            var userId = this.userManager.GetUserId(this.User);

            try
            {
                await this.profilesService.Create(input, userId, $"{this.webHostEnvironment.WebRootPath}/images");
            }
            catch (Exception ex)
            {
                this.ModelState.AddModelError(string.Empty, ex.Message);
                return(this.View(input));
            }
            return(this.Redirect($"/Profiles/Profile?id={userId}"));
        }