Exemplo n.º 1
0
        public async Task <IActionResult> AddPicture([FromForm] Dto.NewPortfolioPicture picture)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            BlobClient blobClient = _blobContainerClient.GetBlobClient(Guid.NewGuid() + Path.GetExtension(picture.File.FileName));

            PortfolioPicture portfolioPicture = new PortfolioPicture();

            portfolioPicture.Picture      = blobClient.Uri.ToString();
            portfolioPicture.RelookeuseId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
            var result = await _context.AddAsync(portfolioPicture);

            await using var stream = picture.File.OpenReadStream();


            Task uploadImageTask = blobClient.UploadAsync(stream);
            Task saveDatabase    = _context.SaveChangesAsync();

            await Task.WhenAll(uploadImageTask, saveDatabase);

            return(Created("api/portfolio/", _mapper.Map <Dto.PortfolioPicture>(result.Entity)));
        }
        public async Task <IActionResult> NewInscription([FromBody] Dto.RelookeuseInscription relookeuseInscription)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            int userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (await _context.Relookeuse.FirstOrDefaultAsync(rel => rel.UserId == userId) != null)
            {
                return(Conflict());
            }

            Relookeuse relookeuse = _mapper.Map <Relookeuse>(relookeuseInscription);

            relookeuse.UserId = userId;

            await _context.AddAsync(relookeuse);

            await _context.SaveChangesAsync();

            relookeuse = await _context.Relookeuse.Include(rel => rel.User).FirstOrDefaultAsync(rel => rel.UserId == userId);

            Dto.NewRelookeuse newRelookeuse = _mapper.Map <Dto.NewRelookeuse>(relookeuse);
            newRelookeuse.NewToken = await Utils.CreateTokenFor(relookeuse.User, _jwtOptions);

            return(Created("api/relookeuse/" + userId, newRelookeuse));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Get([FromBody] Dto.AppointmentRequest appointmentRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (await _context.Appointment.CountAsync(ap => !ap.Finished && ap.RelookeuseId == appointmentRequest.RelookeuseId && ap.UserId == int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) > 0)
            {
                return(Conflict());
            }

            Relookeuse relookeuse = await _context.Relookeuse.Include(rel => rel.User).FirstOrDefaultAsync(rel => rel.UserId == appointmentRequest.RelookeuseId);

            if (relookeuse == null)
            {
                return(NotFound());
            }

            Appointment appointment = new Appointment
            {
                UserId       = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value),
                RelookeuseId = appointmentRequest.RelookeuseId,
                Date         = DateTime.Now,
                Accepted     = false,
                Makeup       = appointmentRequest.MakeUp,
                Finished     = false
            };

            var result = await _context.AddAsync(appointment);

            await _context.SaveChangesAsync();

            Dto.Appointment dtoAppointment = _mapper.Map <Appointment, Dto.Appointment>(result.Entity);
            dtoAppointment.RelookeuseFirstName = relookeuse.User.FirstName;
            dtoAppointment.RelookeuseLastName  = relookeuse.User.LastName;

            return(Created("api/appointment/" + result.Entity.Id, dtoAppointment));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> AddAvailability([FromBody] Dto.NewAvailability newAvailability)
        {
            if (!ModelState.IsValid || newAvailability.StartTime.Equals(newAvailability.EndTime) || String.CompareOrdinal(newAvailability.StartTime, 0, newAvailability.EndTime, 0, 5) > 0)
            {
                return(BadRequest());
            }

            int userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (await _context.Availability.FirstOrDefaultAsync(av => av.RelookeuseId == userId && av.DayOfWeek == newAvailability.DayOfWeek && (av.StartTime.Equals(newAvailability.StartTime) || av.EndTime.Equals(newAvailability.EndTime))) != null)
            {
                return(Conflict());
            }

            Availability availability = _mapper.Map <Availability>(newAvailability);

            availability.RelookeuseId = userId;
            var result = await _context.AddAsync(availability);

            await _context.SaveChangesAsync();

            return(Created("api/availability/", _mapper.Map <Dto.Availability>(result.Entity)));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> AddTarif([FromBody] Dto.NewTarif newTarif)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            int userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (await _context.Tarif.FirstOrDefaultAsync(t => t.RelookeuseId == userId && t.Service.ToLower().Equals(newTarif.Service.ToLower())) != null)
            {
                return(Conflict());
            }

            Tarif tarif = _mapper.Map <Tarif>(newTarif);

            tarif.RelookeuseId = userId;
            var result = await _context.AddAsync(tarif);

            await _context.SaveChangesAsync();

            return(Created("api/tarif/", _mapper.Map <Dto.Tarif>(result.Entity)));
        }
        public async Task <IActionResult> Add([FromBody] Dto.UserInscription userInscription)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (await _context.User.FirstOrDefaultAsync(u => u.Email.Equals(userInscription.Email.ToLower())) != null)
            {
                return(Conflict(ConflictErrorType.EmailAlreadyUsed));
            }

            User user = _mapper.Map <User>(userInscription);

            user.Password = new PasswordHasher <User>().HashPassword(user, user.Password);
            user.Email    = user.Email.ToLower();

            var result = await _context.AddAsync(user);

            await _context.SaveChangesAsync();

            return(Created("api/user/" + result.Entity.Id, await Utils.CreateTokenFor(user, _jwtOptions)));
        }