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));
        }
Exemple #2
0
        public School.Domain.Entities.Occurrence Get(Guid id)
        {
            var ocorrencia = _repository.GetById(id);

            return(ocorrencia);
        }