Ejemplo n.º 1
0
        public async Task <OccurrenceMessageDto> SaveMessage(OccurrenceMessageDto occurrenceDto, IFormFile formFile, int userId)
        {
            if (formFile != null)
            {
                if (formFile.Length > 0)
                {
                    var extensions = Path.GetFileName(formFile.FileName).Split('.').Last().ToUpper();

                    var fileName = $"{DateTime.Now.Year}" +
                                   $"{DateTime.Now.Month.ToString().PadLeft(2, '0')}" +
                                   $"{DateTime.Now.Day.ToString().PadLeft(2, '0')}" +
                                   $"{DateTime.Now.Hour.ToString().PadLeft(2, '0')}" +
                                   $"{DateTime.Now.Minute.ToString().PadLeft(2, '0')}" +
                                   $"{DateTime.Now.Second.ToString().PadLeft(2, '0')}.{extensions}";

                    var path = Path.Combine(_env.WebRootPath, $"Content/Occurrence/{Path.GetFileName(fileName)}");

                    using (var stream = new FileStream(path, FileMode.Create))
                    {
                        await formFile.CopyToAsync(stream);
                    }

                    occurrenceDto.File = fileName;
                }
            }

            var occurrenceMessage = _mapper.Map(occurrenceDto, new OccurrenceMessage());

            var occurrence = await _occurrenceRepository.GetById(occurrenceDto.Occurrence.Id);

            occurrenceMessage.Occurrence            = occurrence;
            occurrenceMessage.OccurrenceMessageType = await _occurrenceMessageTypeRepository.GetById(occurrenceDto.OccurrenceMessageTypeId);

            occurrenceMessage.CreatedAt = DateTime.Now;
            occurrenceMessage.Activated = true;

            occurrenceMessage.User = await _userService.GetUserById(userId);

            if (occurrenceMessage.User.Office.Id == (int)OfficeEnum.BrasilCT)
            {
                occurrence.ReturnedAt = DateTime.Now;
            }

            if (occurrenceMessage.User.Office.Id != (int)OfficeEnum.BrasilCT && occurrenceMessage.Internal && occurrenceMessage.Catalog)
            {
                occurrence.RedirectedAt = DateTime.Now;
            }

            occurrence.LastIteration = occurrenceMessage.OccurrenceMessageType.Description;

            _occurrenceMessageRepository.Save(occurrenceMessage);

            await _unitOfWork.CommitAsync();

            return(_mapper.Map(occurrenceMessage, occurrenceDto));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> SaveMessage([FromForm] OccurrenceMessageDto occurrenceMessageDto, IFormFile formFile)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var result = await _occurenceService.SaveMessage(occurrenceMessageDto, formFile, UserId);

                    return(Ok(result));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }