//[Authorize] public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleVM vehicleModelVM) { //throw new Exception(); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var vehicleModel = mapper.Map <SaveVehicleVM, VehicleModel>(vehicleModelVM); vehicleModel.LastUpdate = DateTime.Now; vehicleRepository.AddVehicle(vehicleModel); await unitofWork.CompleteAsync(); vehicleModel = await vehicleRepository.GetVehicle(vehicleModel.Id); var result = mapper.Map <VehicleModel, VehicleModelVM>(vehicleModel); return(Ok(result)); }
public async Task <IActionResult> CreateIncidenceType([FromBody] IncidenceTypeDto incidenceTypeResource) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await _userRepo.GetUser(_userRepo.GetLoggedInUserId()); //if organizationId passed in is null, then it was passed by the organization's Admin. Hence use the organization admin's organizationId in this case if (incidenceTypeResource.OrganizationId == null && user.OrganizationId != null) { incidenceTypeResource.OrganizationId = user.OrganizationId; } if (_itRepo.CheckIncidenceType(incidenceTypeResource.Name, incidenceTypeResource.OrganizationId)) { ModelState.AddModelError("Error", "The Incidence Type with this name already exists."); return(BadRequest(ModelState)); } var incidenceType = _mapper.Map <IncidenceTypeDto, IncidenceType>(incidenceTypeResource); incidenceType.Deleted = false; incidenceType.Protected = false; _itRepo.Add(incidenceType); await _unitOfWork.CompleteAsync(); incidenceType = await _itRepo.GetIncidenceType(incidenceType.Id); var result = _mapper.Map <IncidenceType, IncidenceTypeDto>(incidenceType); return(Ok(result)); } catch (Exception ex) { ModelState.AddModelError("Error", "An error occured while performing this operation."); return(BadRequest(ModelState)); } }
public async Task <IActionResult> CreateIncidenceTypeDepartment([FromBody] IncidenceTypeDepartmentDto incidenceTypeDeptResource) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await _userRepo.GetUser(_userRepo.GetLoggedInUserId()); //if organizationId passed in is null, then it was passed by the organization's Admin. Hence use the organization admin's organizationId in this case if (incidenceTypeDeptResource.OrganizationId == null && user.OrganizationId != null) { incidenceTypeDeptResource.OrganizationId = user.OrganizationId; } if (_itdRepo.CheckIncidenceTypeDepartment(incidenceTypeDeptResource.IncidenceTypeId, incidenceTypeDeptResource.OrganizationId)) { ModelState.AddModelError("Error", "This Incident Type is already mapped to a department."); return(BadRequest(ModelState)); } var incidenceTypeDept = _mapper.Map <IncidenceTypeDepartmentDto, IncidenceTypeDepartmentMapping>(incidenceTypeDeptResource); _itdRepo.Add(incidenceTypeDept); await _unitOfWork.CompleteAsync(); incidenceTypeDept = await _itdRepo.GetIncidenceTypeDepartment(incidenceTypeDept.Id); var result = _mapper.Map <IncidenceTypeDepartmentMapping, IncidenceTypeDepartmentDto>(incidenceTypeDept); return(Ok(result)); } catch (Exception ex) { ModelState.AddModelError("Error", "An error occured while performing this operation."); return(BadRequest(ModelState)); } }
public async Task <IActionResult> CreateUser([FromBody] SaveUserDto saveUserDto) { try { var userToStringField = ""; var OrgAdminUser = await _userRepo.GetUser(_userRepo.GetLoggedInUserId()); var toStringField = saveUserDto.FirstName + " " + saveUserDto.LastName + " | " + saveUserDto.JobTitle; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (_userRepo.CheckUser(saveUserDto.Username)) { ModelState.AddModelError("Error", "A user with this username already exists."); return(BadRequest(ModelState)); } userToStringField = toStringField; if (saveUserDto.OrganizationId != null) { var orgdata = await _orgRepo.GetOrganization(saveUserDto.OrganizationId); userToStringField = toStringField + " | " + orgdata.CompanyName; saveUserDto.toStringField = userToStringField; } else { var orgdata = await _orgRepo.GetOrganization(OrgAdminUser.OrganizationId); userToStringField = toStringField + " | " + orgdata.CompanyName; saveUserDto.toStringField = userToStringField; saveUserDto.OrganizationId = OrgAdminUser.OrganizationId; } var user = _mapper.Map <SaveUserDto, User>(saveUserDto); user.DateCreated = DateTime.Now; user.CreatedByUserId = _userRepo.GetLoggedInUserId(); user.Protected = false; user.Deleted = false; user.toStringField = userToStringField; user.IsActive = true; user.MobileAppLoginPattern = ""; //otherwise it will take null value and api will not return null values after login due to custom rules on UserDetailsDto.cs var result = await _userManager.CreateAsync(user, saveUserDto.Password); if (result.Succeeded) { var savedUser = _userManager.FindByNameAsync(saveUserDto.Username).Result; var userDeployInfo = _mapper.Map <SaveUserDto, UserDeployment>(saveUserDto); userDeployInfo.UserId = savedUser.Id; userDeployInfo.DateCreated = DateTime.Now; userDeployInfo.Deleted = false; userDeployInfo.Protected = false; userDeployInfo.CreatedByUserId = _userRepo.GetLoggedInUserId(); _userDeploymentRepo.Add(userDeployInfo); } user = _userManager.FindByNameAsync(saveUserDto.Username).Result; var userData = _mapper.Map <User, UserDetailsDto>(user); await _unitOfWork.CompleteAsync(); return(Ok(userData)); } catch (Exception ex) { ModelState.AddModelError("Error", "An error occured while performing this operation."); return(BadRequest(ModelState)); } }
public async Task <IActionResult> PutHazard([FromRoute] Guid id, [FromBody] SaveHazardResource hazardResource) { try { bool triggerNotification = false; //input validation if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var hazard = await repository.GetHazard(id); if (hazard == null) { return(NotFound()); } hazardResource.EditedByUserId = _userRepo.GetLoggedInUserId(); hazardResource.DateCreated = hazard.DateCreated; hazardResource.CreatedByUserId = hazard.CreatedByUserId; hazardResource.Description = hazard.Description; hazardResource.ReportedLatitude = hazard.ReportedLatitude ?? 0; hazardResource.ReportedLongitude = hazard.ReportedLongitude ?? 0; hazardResource.ReporterName = hazard.ReporterName; hazardResource.ReporterEmail = hazard.ReporterEmail; hazardResource.ReporterFirstResponderAction = hazard.ReporterFirstResponderAction; hazardResource.ReporterFeedbackRating = hazard.ReporterFeedbackRating; //hazardResource.ManagerFeedbackRating = hazard.ManagerFeedbackRating; hazardResource.Protected = hazard.Protected; hazardResource.Deleted = hazard.Deleted; hazardResource.Code = hazard.Code; hazardResource.DateEdited = DateTime.UtcNow; hazardResource.Deleted = hazard.Deleted; //incidenceResource.Protected = incidence.Protected; //hazardResource.AssignerId = hazard.AssignerId; hazardResource.AssignedOrganizationId = hazard.AssignedOrganizationId; //hazardResource.AssignedDepartmentId = hazard.AssignedDepartmentId; //hazardResource.ResolutionDate = hazard.ResolutionDate; // trigger alert when incidence status is open or re-opened if (hazardResource.IncidenceStatusId != hazard.IncidenceStatusId && (hazardResource.IncidenceStatusId == GlobalFields.OpenIncidenceStatus || hazardResource.IncidenceStatusId == GlobalFields.ReOpenedIncidenceStatus)) { hazardResource.AssignerId = _userRepo.GetLoggedInUserId(); triggerNotification = true; } else if (hazardResource.IncidenceStatusId != hazard.IncidenceStatusId && hazardResource.IncidenceStatusId == GlobalFields.ClosedIncidenceStatus) { // set resolution date when incidence is closed hazardResource.ResolutionDate = DateTime.Now; triggerNotification = true; } else if (hazardResource.IncidenceStatusId != hazard.IncidenceStatusId && (hazardResource.IncidenceStatusId == GlobalFields.ResolvedIncidenceStatus || hazardResource.IncidenceStatusId == GlobalFields.UnderReviewIncidenceStatus)) { triggerNotification = true; } mapper.Map <SaveHazardResource, Hazard>(hazardResource, hazard); await unitOfWork.CompleteAsync(); //send email and sms to notify assignee upon incidence opening and assignment //IncidenceType's mapped department's settings is used for sending notification, otherwise if empty, use organization or system settings if (triggerNotification) { await _notificationRepo.SendIncidenceNotification(hazardResource, hazardResource.AssignedDepartmentId, hazardResource.AssignerId, hazardResource.AssigneeId, hazardResource.AssignedOrganizationId); } hazard = await repository.GetHazard(id); var result = mapper.Map <Hazard, HazardResource>(hazard); return(Ok(result)); } catch (Exception ex) { ModelState.AddModelError("Error", "An error occured while performing this operation."); return(BadRequest(ModelState)); } }
public async Task <IActionResult> UploadProfilePhoto(Guid userId, IFormFile file) { try { // upload user profile photo var user = await _userRepo.GetUser(userId); if (user == null) { return(NotFound()); } if (file == null) { return(BadRequest("Null file")); } if (file.Length == 0) { return(BadRequest("Empty file")); } var loggedinUser = await _userRepo.GetUser(_userRepo.GetLoggedInUserId()); var userdeployment = await _userRepo.GetUserDeploymentData(_userRepo.GetLoggedInUserId()); var orgSettings = await _settingsRepo.GetOrganizationSettings(loggedinUser.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 var isFilePhotoNotVideo = _settingsRepo.IsImageFileNotVideo(deptSettings, orgSettings, generalSettings, file); if (!isFilePhotoNotVideo) { return(BadRequest("Invalid file type")); } if (!_settingsRepo.ValidateFileSize(deptSettings, orgSettings, generalSettings, file)) { return(BadRequest("Maximun file size exceeded")); } //check if user already has a profile photo and delete, replace with new one var userProfilePhotoData = await _photoRepo.GetUserProfilePhoto(userId); if (userProfilePhotoData != null) { _photoRepo.Delete(userProfilePhotoData); await _unitOfWork.CompleteAsync(); } var uploadsFolderPath = Path.Combine(_host.WebRootPath, "uploads/userProfileData"); var photo = await _photoService.UploadUserProfilePhoto(user, file, uploadsFolderPath, isFilePhotoNotVideo); return(Ok(_mapper.Map <Media, MediaResource>(photo))); } catch (Exception ex) { ModelState.AddModelError("Error", "An error occured while performing this operation."); return(BadRequest(ModelState)); } }