Exemple #1
0
        public async Task <IActionResult> Crear([FromBody] CrearViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            VMClient vMClient = new VMClient
            {
                clientname           = model.clientname,
                clientfullname       = model.clientfullname,
                clientemail          = model.clientemail,
                clientphone          = model.clientphone,
                clientcontact        = model.clientcontact,
                emailcontact_tecnico = model.emailcontact_tecnico,
                estado = true
            };

            _context.VMClients.Add(vMClient);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
            return(Ok());
        }
        public ActionResult Create([Bind("Name,Email,Password,RG,cpf,Street,Neighborhood,idCity,idState,ContractStartDate,idPlanType,idTypePayment,idUser")] VMClient payload)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    TempData["_mensagem"] = new VMMessages()
                    {
                        Css  = "alert alert-danger",
                        Text = "Não foi possivel realizar seu cadastro,tente novamente!"
                    };
                    //return BadRequest(ModelState.GetErrorMessages());
                    ViewData["idCity"] = new SelectList(_cityService.GetCitiesByState(payload.idState), "Id", "Name", payload.idCity);

                    ViewData["idPlanType"]    = new SelectList(_planTypeService.GetAll(), "Id", "Name");
                    ViewData["idState"]       = new SelectList(_stateService.GetAll(), "Id", "Name");
                    ViewData["idTypePayment"] = new SelectList(_typePaymentService.GetAll(), "Id", "Name");
                    return(View(payload));
                }
                var result = _clientService.Save(payload);
                var _msg   = new VMMessages()
                {
                    Css  = "alert alert-success",
                    Text = "Cadastro salvo com sucesso!"
                };
                TempData["_mensagem"] = JsonConvert.SerializeObject(_msg);
                return(RedirectToAction(nameof(Index)));
            }
            catch (CustomHttpException ex)
            {
                _logger.Log(LogLevel.Error, ex.Message);
                TempData["_mensagem"] = new VMMessages()
                {
                    Css  = "alert alert-danger",
                    Text = ex.ErrorMessage
                };
            }
            catch (Exception ex)
            {
                _logger.Log(LogLevel.Error, ex.Message);
                TempData["_mensagem"] = new VMMessages()
                {
                    Css  = "alert alert-danger",
                    Text = "Um erro insperado ocorreu"
                };
            }
            ViewData["idCity"] = new SelectList(_cityService.GetCitiesByState(payload.idState), "Id", "Name", payload.idCity);

            ViewData["idPlanType"]    = new SelectList(_planTypeService.GetAll(), "Id", "Name");
            ViewData["idState"]       = new SelectList(_stateService.GetAll(), "Id", "Name");
            ViewData["idTypePayment"] = new SelectList(_typePaymentService.GetAll(), "Id", "Name");
            return(View(payload));
        }
 public ActionResult Create(VMClient vmclient)
 {
     if (ModelState.IsValid)
     {
         this.repository.Add(_mapper.Map <Client>(vmclient));
         return(RedirectToAction(nameof(Index)));
     }
     else
     {
         return(View(vmclient));
     }
 }
        public ActionResult Edit(int id, VMClient vmclient)
        {
            try
            {
                // TODO: Add update logic here
                this.repository.Update(_mapper.Map <Client>(vmclient));

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
        public bool Update(VMClient entity)
        {
            var existingUser = _userRepository.FindByEmail(entity.Email);

            if (existingUser != null && existingUser.Id != entity.idUser)
            {
                throw new CustomHttpException(422, " Esse “E-mail” já existe na base de dados.");
            }
            var existingUserWithCpf = _userRepository.FindByCPF(entity.cpf);

            if (existingUserWithCpf != null && existingUserWithCpf.Id != entity.idUser)
            {
                throw new CustomHttpException(422, " Esse “CPF” já existe na base de dados.");
            }
            var existingUserWithRG = _userRepository.FindByRg(entity.RG);

            if (existingUserWithRG != null && existingUserWithRG.Id != entity.idUser)
            {
                throw new CustomHttpException(422, " Esse “RG” já existe na base de dados.");
            }
            var user = _mapper.Map <User>(entity);

            user.UserTypeId = 5;
            user.Id         = entity.idUser;
            user.Password   = user.Password;
            user.CreatedAt  = existingUser.CreatedAt;
            var transaction = _context.Database.BeginTransaction();

            try
            {
                var createdUser = _userRepository.Update(user, user.Id);
                var client      = _mapper.Map <Client>(entity);
                client.CreatedAt = existingUser.CreatedAt;
                var createdInstructor = _clientRepository.Update(client, entity.IdRegistration);
                transaction.Commit();
                return(createdInstructor);
            }
            catch (Exception ex)
            {
                //TODO: Log ex
                transaction.Rollback();
                throw new CustomHttpException(500, "Internal server error");
            }
        }
        public Client Save(VMClient entity)
        {
            var existingUser = _userRepository.FindByEmail(entity.Email);

            if (existingUser != null)
            {
                throw new CustomHttpException(422, " Esse “E-mail” já existe na base de dados.");
            }
            var existingUserWithCpf = _userRepository.FindByCPF(entity.cpf);

            if (existingUserWithCpf != null)
            {
                throw new CustomHttpException(422, " Esse “CPF” já existe na base de dados.");
            }
            var existingUserWithRG = _userRepository.FindByRg(entity.RG);

            if (existingUserWithRG != null)
            {
                throw new CustomHttpException(422, " Esse “RG” já existe na base de dados.");
            }
            var user = _mapper.Map <User>(entity);

            user.UserTypeId = 5;
            user.Password   = _passwordManager.HashPassword(user.Password);
            var transaction = _context.Database.BeginTransaction();

            try
            {
                var createdUser = _userRepository.Save(user);
                var client      = _mapper.Map <Client>(entity);
                client.idUser = createdUser;
                var createdInstructor = _clientRepository.Save(client);
                transaction.Commit();
                return(_clientRepository.FindById(createdInstructor));
            }
            catch (Exception ex)
            {
                //TODO: Log ex
                transaction.Rollback();
                throw new CustomHttpException(500, "Internal server error");
            }
        }
        public ActionResult Edit(int id, [Bind("IdRegistration,Name,Email,Password,RG,cpf,Street,Neighborhood,idCity,idState,ContractStartDate,ContractEndDate,idPlanType,idTypePayment,idUser,CreatedAt,UpdatedAt,DeletedAt")] VMClient payload)
        {
            try
            {
                if (id != payload.IdRegistration)
                {
                    var _msg = new VMMessages()
                    {
                        Css  = "alert alert-danger",
                        Text = "Um erro inseperado ocorreu"
                    };
                    TempData["_mensagem"] = JsonConvert.SerializeObject(_msg);
                    return(RedirectToAction(nameof(Index)));
                }

                if (ModelState.IsValid)
                {
                    var result = _clientService.Update(payload);
                    if (result)
                    {
                        var _msg = new VMMessages()
                        {
                            Css  = "alert alert-success",
                            Text = "Editado com sucesso!"
                        };
                        TempData["_mensagem"] = JsonConvert.SerializeObject(_msg);
                    }
                    else
                    {
                        var _msg = new VMMessages()
                        {
                            Css  = "alert alert-danger",
                            Text = "Um erro insperado ocorreu"
                        };
                        TempData["_mensagem"] = JsonConvert.SerializeObject(_msg);
                    }

                    return(RedirectToAction(nameof(Index)));
                }
            }
            catch (CustomHttpException ex)
            {
                _logger.Log(LogLevel.Error, ex.Message);
                TempData["_mensagem"] = new VMMessages()
                {
                    Css  = "alert alert-danger",
                    Text = ex.ErrorMessage
                };
            }
            catch (Exception ex)
            {
                _logger.Log(LogLevel.Error, ex.Message);
                TempData["_mensagem"] = new VMMessages()
                {
                    Css  = "alert alert-danger",
                    Text = "Um erro insperado ocorreu"
                };
            }

            ViewData["idCity"]        = new SelectList(_cityService.GetCitiesByState(payload.idState), "Id", "Name", payload.idCity);
            ViewData["idPlanType"]    = new SelectList(_planTypeService.GetAll(), "Id", "Name", payload.idPlanType);
            ViewData["idState"]       = new SelectList(_stateService.GetAll(), "Id", "Name", payload.idState);
            ViewData["idTypePayment"] = new SelectList(_typePaymentService.GetAll(), "Id", "Name", payload.idTypePayment);
            return(View(payload));
        }