Example #1
0
        public async Task <ActionResult> Create(ServiceRateDto ServiceRate)
        {
            var serviceRateExists = await _serviceRateRepository.GetByComplaintsIdAsync(ServiceRate.ComplaintsId);

            if (serviceRateExists.Data == null)
            {
                var saved = await _serviceRateRepository.SaveAsync(ServiceRate);
            }
            else
            {
                serviceRateExists.Data.Rate = ServiceRate.Rate;
                var removedPreviousRate = await _serviceRateRepository.UpdateAsync(serviceRateExists.Data);
            }

            var complaints = await _complaintsRepository.GetAsync(ServiceRate.ComplaintsId);

            var binnacle = new BinnacleDto
            {
                ComplaintsId      = ServiceRate.ComplaintsId,
                StatusId          = complaints.Data.StatusId,
                Comment           = $"SE HA PUNTUADO EL TICKET COMO: {ServiceRate.Rate}",
                ApplicationUserId = User.Identity.GetUserId()
            };

            await _binnaclesRepository.SaveAsync(binnacle);

            return(RedirectToAction(nameof(ComplaintsController.Details), "Complaints", new { id = ServiceRate.ComplaintsId }));
        }
Example #2
0
        public async Task <ActionResult> Add(BinnacleDto binnacleDto)
        {
            var complaint = await _complaintsRepository.GetAsync(binnacleDto.ComplaintsId.GetValueOrDefault());

            var binnacle = new BinnacleDto
            {
                ApplicationUserId = User.Identity.GetUserId(),
                StatusId          = complaint.Data.StatusId,
                Comment           = binnacleDto.Comment.ToUpper(),
                ComplaintsId      = complaint.Data.Id
            };
            var binnacles = await _binnaclesRepository.SaveAsync(binnacle);

            return(Json(binnacles));
        }
        public async Task <ActionResult> UpdateStatus(ComplaintsViewModel model)
        {
            var isUpdated = await _complaintsRepository.UpdateStatusAsync(model.Complaint.Data.StatusId, model.Complaint.Data.Id);

            var status = await _statusRepository.GetAsync(model.Complaint.Data.StatusId);

            if (isUpdated.Success)
            {
                var binnacle = new BinnacleDto
                {
                    StatusId          = model.Complaint.Data.StatusId,
                    Comment           = model.Binnacle?.Comment ?? $"SE HA CAMBIADO EL ESTADO DEL TICKET A: {status.Data.Name.ToUpper()}",
                    ComplaintsId      = model.Complaint.Data.Id,
                    CreatedAt         = DateTime.Now,
                    ApplicationUserId = User.Identity.GetUserId()
                };
                var addBinnacle = await _binnaclesRepository.SaveAsync(binnacle);
            }

            return(RedirectToAction("Details", new { id = model.Complaint.Data.Id }));
        }
        public async Task <TaskResult <BinnacleDto> > SaveAsync(BinnacleDto binnacleDto)
        {
            var binnacle = AutoMapper.Mapper.Map <Binnacle>(binnacleDto);

            binnacle.CreatedAt = DateTime.Now;
            var result = new TaskResult <BinnacleDto>();

            try
            {
                _dbContext.Binnacles.Add(binnacle);
                await _dbContext.SaveChangesAsync();

                result.Data    = AutoMapper.Mapper.Map <BinnacleDto>(binnacle);
                result.Success = true;
            }
            catch (Exception e)
            {
                result.Message = e.InnerException.Message;
                result.Success = false;
            }
            return(result);
        }
        public async Task <ActionResult> Create(ComplaintsDto Data)
        {
            var department = await _complaintsOptionsRepository.GetAsync(Data.ComplaintsOptionsId);

            Data.DepartmentsId = department.Data.DepartmentsId.GetValueOrDefault();

            var options = await _complaintsOptionsRepository.GetAllAsync();

            ViewBag.ComplaintsOptions = options.Data.Select(e => new SelectListItem {
                Value = e.Id.ToString(), Text = e.Name
            }).ToList();
            var products = await _productsRepository.GetAllAsync();

            ViewBag.Products = products.Data.Select(e => new SelectListItem {
                Value = e.Id.ToString(), Text = e.Name
            }).ToList();
            var customers = await _customeRepository.GetAllAsync();

            ViewBag.Customers = customers.Data.Select(e => new SelectListItem {
                Value = e.Id.ToString(), Text = $"{e.Name} {e.LastName} ({e.Email})"
            }).ToList();
            var ticketTypes = await _ticketTypesRepository.GetAllAsync();

            ViewBag.TicketTypes = ticketTypes.Data.Select(e => new SelectListItem {
                Value = e.Id.ToString(), Text = e.Description
            }).ToList();

            var status1 = await _statusRepository.GetByNameAsync(StatusName.COMMITED);

            Data.StatusId = status1.Data.Id;
            var result = await _complaintsRepository.SaveAsync(Data);

            if (result.Success)
            {
                var ticketType = await _ticketTypesRepository.GetAsync(Data.TicketTypesId);

                var binnacle1 = new BinnacleDto
                {
                    ApplicationUserId = User.Identity.GetUserId(),
                    StatusId          = Data.StatusId,
                    Comment           = $"La {ticketType.Data.Description} se ha creado con el estado: {StatusName.COMMITED}",
                    ComplaintsId      = result.Data.Id
                };
                await _binnaclesRepository.SaveAsync(binnacle1);

                var deparment = await _departmentsRepository.GetAsync(Data.DepartmentsId);

                if (deparment.Success && deparment.Data != null)
                {
                    var status2 = await _statusRepository.GetByNameAsync(StatusName.TRANSFERRED);

                    await _complaintsRepository.UpdateStatusAsync(status2.Data.Id, result.Data.Id);

                    var binnacle2 = new BinnacleDto
                    {
                        ApplicationUserId = User.Identity.GetUserId(),
                        StatusId          = status2.Data.Id,
                        Comment           = $"La {ticketType.Data.Description} ha sido transferido al departamento: {deparment.Data.Name}",
                        ComplaintsId      = result.Data.Id
                    };

                    await _binnaclesRepository.SaveAsync(binnacle2);
                }
            }

            return(View(result));
        }