Пример #1
0
        public async Task <IActionResult> UploadIncidencePhotosVideos(Guid incidenceId, IFormFile file, FileUploadChannels channelId)
        {
            try
            {
                // upload photo/video for incidence
                var incidence = await _incidenceRepo.GetIncidence(incidenceId, includeRelated : false);

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

                if (file == null)
                {
                    return(BadRequest("Null file"));
                }
                if (file.Length == 0)
                {
                    return(BadRequest("Empty file"));
                }

                var user = await _userRepo.GetUser(_userRepo.GetLoggedInUserId());

                var userdeployment = await _userRepo.GetUserDeploymentData(_userRepo.GetLoggedInUserId());

                var orgSettings = await _settingsRepo.GetOrganizationSettings(user.OrganizationId);

                var deptSettings = await _settingsRepo.GetDepartmentSettings(userdeployment.DepartmentId);

                var generalSettings = await _settingsRepo.GetGeneralSettings();


                //uploading incidence resolution proof uses the uploader's dept settings|org settings|general settings
                if (!_settingsRepo.ValidateFileType(deptSettings, orgSettings, generalSettings, file))
                {
                    return(BadRequest("Invalid file type"));
                }

                if (!_settingsRepo.ValidateFileSize(deptSettings, orgSettings, generalSettings, file))
                {
                    return(BadRequest("Maximun file size exceeded"));
                }

                var isFilePhotoNotVideo = _settingsRepo.IsImageFileNotVideo(deptSettings, orgSettings, generalSettings, file);

                var uploadsFolderPath = Path.Combine(_host.WebRootPath, "uploads");
                var photo             = await _photoService.UploadPhoto(incidence, file, uploadsFolderPath, channelId, isFilePhotoNotVideo);

                return(Ok(_mapper.Map <Media, MediaResource>(photo)));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Error", "An error occured while performing this operation.");
                return(BadRequest(ModelState));
            }
        }
Пример #2
0
        public async Task <IActionResult> GetIncidence([FromRoute] Guid id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var incidences = await repository.GetIncidence(id);

            if (incidences == null)
            {
                return(NotFound());
            }
            var incidenceResource = mapper.Map <Incidence, IncidenceResource>(incidences);

            return(Ok(incidenceResource));
        }