public void OrganizationDepartment_Extension_AsDTO_Null() { // Arrange OrganizationDepartment organizationDepartment = null; // Act var result = organizationDepartment.AsDto(); // Assert Assert.IsNull(result); Assert.AreEqual(null, result); }
public void OrganizationDepartment_Property_Name() { // Arrange var organizationDepartment = new OrganizationDepartment(); var value = "Test Department"; // Act organizationDepartment.Name = value; // Assert Assert.IsNotNull(organizationDepartment.Name); Assert.IsInstanceOfType(organizationDepartment.Name, typeof(string)); Assert.AreEqual(value, organizationDepartment.Name); }
public void OrganizationDepartment_Property_Employees() { // Arrange var organizationDepartment = new OrganizationDepartment(); var value = TestHelper.Employees(); // Act organizationDepartment.Employees = value; // Assert Assert.IsNotNull(organizationDepartment.Employees); Assert.IsInstanceOfType(organizationDepartment.Employees, typeof(List <Employee>)); Assert.AreEqual(value, organizationDepartment.Employees); }
public void OrganizationDepartment_Property_Address() { // Arrange var organizationDepartment = new OrganizationDepartment(); var value = Core.Tests.TestHelper.Address(); // Act organizationDepartment.Address = value; // Assert Assert.IsNotNull(organizationDepartment.Address); Assert.IsInstanceOfType(organizationDepartment.Address, typeof(Address)); Assert.AreEqual(value, organizationDepartment.Address); }
public void OrganizationDepartment_Property_IsDeleted() { // Arrange var organizationDepartment = new OrganizationDepartment(); var value = false; // Act organizationDepartment.IsDeleted = value; // Assert Assert.IsNotNull(organizationDepartment.IsDeleted); Assert.IsInstanceOfType(organizationDepartment.IsDeleted, typeof(bool)); Assert.AreEqual(value, organizationDepartment.IsDeleted); }
public void OrganizationDepartment_Property_Branch() { // Arrange var organizationDepartment = new OrganizationDepartment(); var value = TestHelper.OrganizationBranch(); // Act organizationDepartment.Branch = value; // Assert Assert.IsNotNull(organizationDepartment.Branch); Assert.IsInstanceOfType(organizationDepartment.Branch, typeof(OrganizationBranch)); Assert.AreEqual(value, organizationDepartment.Branch); }
public void OrganizationDepartment_Property_IsActive() { // Arrange var organizationDepartment = new OrganizationDepartment(); var value = true; // Act organizationDepartment.IsActive = value; // Assert Assert.IsNotNull(organizationDepartment.IsActive); Assert.IsInstanceOfType(organizationDepartment.IsActive, typeof(bool)); Assert.AreEqual(value, organizationDepartment.IsActive); }
public void OrganizationDepartment_Property_ModifiedBy() { // Arrange var organizationDepartment = new OrganizationDepartment(); var value = Core.Tests.TestHelper.User(); // Act organizationDepartment.ModifiedBy = value; // Assert Assert.IsNotNull(organizationDepartment.ModifiedBy); Assert.IsInstanceOfType(organizationDepartment.ModifiedBy, typeof(User)); Assert.AreEqual(value, organizationDepartment.ModifiedBy); }
public void OrganizationDepartment_Property_Modified() { // Arrange var organizationDepartment = new OrganizationDepartment(); var value = DateTime.Now; // Act organizationDepartment.Modified = value; // Assert Assert.IsNotNull(organizationDepartment.Modified); Assert.IsInstanceOfType(organizationDepartment.Modified, typeof(DateTime)); Assert.AreEqual(value, organizationDepartment.Modified); }
public Assay UpdAssayAndStepWithUnitOfWork(Assay oldAssay, OrganizationDepartment org, PlanTaskBatchStepStatus twoStep) { Assay reAssay = null; DateTime dt = _sPGetSysDateTimeService.GetSysDateTime(); try { decimal unitprice = 0; int grainGrade; grainGrade = JudgeGrainGrade(oldAssay.AssayBills.ToList()[0].AssayResults.ToList(), org, oldAssay.Sample.goods_kind, out unitprice); if (grainGrade > 0) { oldAssay.grain_grade = grainGrade; } oldAssay.confirm_time = dt; _unitOfWork.AddAction(oldAssay, DataActions.Update); if (oldAssay.Sample.Enrolment1.Contract != null && oldAssay.Sample.Enrolment1.Contract.grain_price.HasValue) { oldAssay.Sample.PlanTaskBatch.unit_price = oldAssay.Sample.Enrolment1.Contract.grain_price.Value / 1000; oldAssay.Sample.PlanTaskBatch.PlanTask.unit_price = oldAssay.Sample.Enrolment1.Contract.grain_price.Value / 1000; _unitOfWork.AddAction(oldAssay.Sample.PlanTaskBatch, DataActions.Update); _unitOfWork.AddAction(oldAssay.Sample.PlanTaskBatch.PlanTask, DataActions.Update); } else if (unitprice != 0) { oldAssay.Sample.PlanTaskBatch.unit_price = unitprice; oldAssay.Sample.PlanTaskBatch.PlanTask.unit_price = unitprice; _unitOfWork.AddAction(oldAssay.Sample.PlanTaskBatch, DataActions.Update); _unitOfWork.AddAction(oldAssay.Sample.PlanTaskBatch.PlanTask, DataActions.Update); } //Step twoStep.operate_time = dt; _unitOfWork.AddAction(twoStep, DataActions.Add); } catch (RepositoryException ex) { throw ex; } return(reAssay); }
public static OrganizationDepartmentDto AsDto(this OrganizationDepartment organizationDepartment) { if (organizationDepartment == null) { return(null); } return(new OrganizationDepartmentDto { Id = organizationDepartment.ID, Name = organizationDepartment.Name, Organization = organizationDepartment.Organization.AsDto(), Branch = organizationDepartment.Branch.AsDto(), Employees = organizationDepartment.Employees.AsDto(), Address = organizationDepartment.Address.AsDto(), Created = organizationDepartment.Created, CreatedBy = organizationDepartment.CreatedBy.AsDto(), Modified = organizationDepartment.Modified, ModifiedBy = organizationDepartment.ModifiedBy.AsDto(), IsActive = organizationDepartment.IsActive, IsDeleted = organizationDepartment.IsDeleted }); }
public async Task <string> GetClosedIncidenceNotificationExternalMail(EventResource incidenceData, NotificationSettings settings, OrganizationDepartment departmentData, Organization organizationData) { var msg = "Dear " + incidenceData?.ReporterName + ", <br/><br/>The incidence with the details below has been closed<br/><br/>Incidence Description: " + incidenceData?.Description + "<br/>Assigned Department: " + departmentData?.Name + "<br/>Assigned Orgainization: " + organizationData?.CompanyName + "<br/><br/>IRS Automated Reports"; return(msg); }
/// <summary> /// /// </summary> /// <param name="arList">检测值列表</param> /// <param name="org">组织机构</param> /// <param name="goodsKindID">粮食品种</param> /// <param name="cont">合同</param> /// <returns>返回等级,-2表示异常,-1表示无等级基础数据,0表示未获取到组织机构对应的等级判定</returns> public int JudgeGrainGrade(IList <AssayResult> arList, OrganizationDepartment org, int goodsKindID, out decimal unitPrice) { int graidGrade = 0; unitPrice = 0; IList <AssayBasicData> GrainGradeList = GetGrainGrade().ToList(); if (GrainGradeList == null || GrainGradeList.Count == 0) { return(-1); } try { List <TargetPrice> TargetPriceList; if (org.TargetPrices.Count == 0) { //未关联组织机构,直接找关联粮食品种的TargetPrice TargetPriceList = _targetPriceService.GetTargetPricesByGoodsKindID(goodsKindID).OrderByDescending(tp => decimal.Parse(tp.min_value)).ToList(); } else { TargetPriceList = org.TargetPrices.Where( tp => tp.grain_kind == goodsKindID).OrderByDescending( otp => decimal.Parse(otp.min_value)).ToList(); } if (TargetPriceList == null || TargetPriceList.Count == 0) { return(0); //如果没有对应的等级判定,就立即返回0 } //选取默认第一个TargetPrice的grain_quality_index为检索项 AssayResult newar = arList.SingleOrDefault(ar => ar.grain_quality_index == TargetPriceList[0].grain_quality_index.Value); if (newar == null) { return(0); } //判断 string grain_grade = ""; #region //////////////////////////////////////////判定等级//////////////////////////////////// for (int i = 0; i < TargetPriceList.Count; i++) { int Result = -1; if (!TargetPriceList[i].min_tag.HasValue) { continue; } switch (TargetPriceList[i].min_tag.Value) { case 0: if (decimal.Parse(newar.assay_result_value) > decimal.Parse(TargetPriceList[i].min_value)) { Result = 0; unitPrice = TargetPriceList[i].price.Value; } break; case 1: if (decimal.Parse(newar.assay_result_value) >= decimal.Parse(TargetPriceList[i].min_value)) { Result = 0; unitPrice = TargetPriceList[i].price.Value; } break; case 2: if (decimal.Parse(newar.assay_result_value) < decimal.Parse(TargetPriceList[i].min_value)) { Result = 0; unitPrice = TargetPriceList[i].price.Value; } break; case 3: if (decimal.Parse(newar.assay_result_value) <= decimal.Parse(TargetPriceList[i].min_value)) { Result = 0; unitPrice = TargetPriceList[i].price.Value; } break; default: Result = -1; break; } if (Result != -1) //满足条件“一等” { switch (i) { case 0: grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.一等); break; case 1: grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.二等);; break; case 2: grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.等); break; case 3: grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.四等); break; case 4: grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.五等); break; case 5: grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.等外); break; default: grain_grade = string.Empty; break; } break; // 赋值以后可退出循环 } } AssayBasicData abd = GrainGradeList.Single(gg => gg.name == grain_grade); if (abd != null) { graidGrade = abd.basic_data_id; } #endregion return(graidGrade); } catch { //返回-2是异常 return(-2); } }
public Assay AddAssayWithUnitOfWork(Sample newSample, SampleDetail newSampleDetail, int user_id, Contract cont, IList <GrainQualityIndex> GrainQualityIndexList, List <string> resultList, AssayStatus status, string AssayBillIndex, OrganizationDepartment org, int gradeID) { Assay newAssay = new Assay(); int billID = _sysBillNoService.GetBillNoID("QUM", "ASN"); newAssay.assay_number = _sysBillNoService.GetBillNo(billID); //newAssay.assay_result = null; //newAssay.bill_owner_org = 1; //newAssay.confirm_time = null; newAssay.confirm_user = user_id; newAssay.create_time = _sPGetSysDateTimeService.GetSysDateTime(); newAssay.grain_grade = gradeID; newAssay.remark = ""; newAssay.sample_number = newSample.sample_number; newAssay.status = (int)status; _unitOfWork.AddAction(newAssay, DataActions.Add); AddAssayBillWithUnitOfWork(newAssay, user_id, newSampleDetail, cont, GrainQualityIndexList, resultList, AssayBillIndex); //newAssay.grain_grade = JudgeGrainGrade(newAssay.AssayBills.First().AssayResults, return(newAssay); }
public async Task <IActionResult> CreateIncidenceRemote([FromForm] SaveIncidenceResource incidenceResource) { try { var loggedInUserId = _userRepo.GetLoggedInUserId(); var user = await _userRepo.GetUser(loggedInUserId); bool triggerNotification = false; bool triggerDeptNotification = false; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //business rule validation var incidenceCode = !string.IsNullOrEmpty(incidenceResource.Description) ? incidenceResource.Description + "/" + ((incidenceResource.ReportedIncidenceLatitude != null) ? incidenceResource.ReportedIncidenceLatitude : DateTime.Now.Minute) + "/" + ((incidenceResource.ReportedIncidenceLongitude != null) ? incidenceResource.ReportedIncidenceLongitude : DateTime.Now.Minute) : incidenceResource.ReportedIncidenceLatitude + "/" + incidenceResource.ReportedIncidenceLongitude; if (repository.CheckIncidenceCode(incidenceCode)) { ModelState.AddModelError("Error", "The incidence with this Code already exists."); return(BadRequest(ModelState)); } var incidence = mapper.Map <SaveIncidenceResource, Incidence>(incidenceResource); incidence.Deleted = false; incidence.CreatedByUserId = loggedInUserId; // incidence.Protected = true; in other to allow pseudo-deletion which only hides the record incidence.DateCreated = DateTime.UtcNow; incidence.IncidenceStatusId = GlobalFields.NewIncidenceStatus; incidence.Code = incidenceCode; //incidence.LastUpdate = DateTime.Now; if (user != null) { var reporterFullName = string.IsNullOrEmpty(user.MiddleName) ? user.FirstName + " " + user.LastName : user.FirstName + " " + user.MiddleName + " " + user.LastName; incidence.ReporterName = reporterFullName ?? ""; incidence.ReporterDepartmentId = user.DepartmentId; incidence.ReporterEmail = user.Email1; } // trigger alert when incidence status is open or re-opened provided as Assignee and Assigner were sent if (incidenceResource.AssigneeId != null && (incidenceResource.IncidenceStatusId == GlobalFields.OpenIncidenceStatus || incidenceResource.IncidenceStatusId == GlobalFields.ReOpenedIncidenceStatus)) { incidence.AssignerId = loggedInUserId; triggerNotification = true; } var incidenceTypeDepartment = new OrganizationDepartment(); if (incidenceResource.IncidenceTypeId != null) { incidenceTypeDepartment = await _incidenceTypeDeptRepo.GetDepartmentFromIncidenceType(incidenceResource.IncidenceTypeId); } incidence.AssignedDepartmentId = incidenceTypeDepartment.Id; incidence.OrganizationId = incidenceTypeDepartment.OrganizationId; incidence.AssignedOrganizationId = incidenceTypeDepartment.OrganizationId; incidence.IncidenceStatusId = incidenceResource.IncidenceStatusId ?? GlobalFields.NewIncidenceStatus; if (incidence.IncidenceStatusId == GlobalFields.NewIncidenceStatus && incidenceResource.IncidenceTypeId != null) { incidence.AssignedDepartmentId = incidenceTypeDepartment.Id; incidence.OrganizationId = incidenceTypeDepartment.OrganizationId; incidence.AssignedOrganizationId = incidenceTypeDepartment.OrganizationId; triggerDeptNotification = true; } repository.Add(incidence); await unitOfWork.CompleteAsync(); incidence = await repository.GetIncidence(incidence.Id); if (incidence == null) { return(NotFound()); } if (incidenceResource.file != null && incidenceResource.file.Length != 0) { var deptSettings = await _settingsRepo.GetDepartmentSettings(incidenceTypeDepartment.Id); var orgSettings = await _settingsRepo.GetOrganizationSettings(incidenceTypeDepartment.OrganizationId); var generalSettings = await _settingsRepo.GetGeneralSettings(); if (!_settingsRepo.ValidateFileType(deptSettings, orgSettings, generalSettings, incidenceResource.file)) { return(BadRequest("Invalid file type")); } if (!_settingsRepo.ValidateFileSize(deptSettings, orgSettings, generalSettings, incidenceResource.file)) { return(BadRequest("Maximun file size exceeded")); } var isFilePhotoNotVideo = _settingsRepo.IsImageFileNotVideo(deptSettings, orgSettings, generalSettings, incidenceResource.file); //Dont use webrootpath i.e wwwroot as it gets cleared after angular ng build var uploadsFolderPath = Path.Combine(_host.WebRootPath, "uploads"); var photo = await _photoService.UploadPhoto(incidence, incidenceResource.file, uploadsFolderPath, FileUploadChannels.incidencesReportedOnMobile, isFilePhotoNotVideo); // return Ok(mapper.Map<Media, MediaResource>(photo)); } //Next, fetch notification settings from the IncidenceType's-mapped department or the mapped department's organization if dept settings is empty. Dept receives notification here //IncidenceType's mapped department's settings is used for sending notification, otherwise if empty, use organization or system settings //await _notificationRepo.SendIncidenceNotification(incidenceResource, incidenceTypeDepartment.Id, null, null, incidenceTypeDepartment.OrganizationId); if (triggerDeptNotification) { //pass the reporter details into incidenceResource as it only exists in incidence and it is needed in email notification incidenceResource.ReporterName = incidence.ReporterName; incidenceResource.ReporterEmail = incidence.ReporterEmail; incidence.ReporterDepartmentId = incidence.ReporterDepartmentId; await _notificationRepo.SendEmailNotificationToOrgDeptUsers(incidenceResource, incidenceTypeDepartment.Id, incidenceTypeDepartment.OrganizationId, incidence.ReporterDepartmentId); // use SendEmailNotificationToOrgDeptUsers method in notificationRepo } if (triggerNotification) { await _notificationRepo.SendIncidenceNotification(incidenceResource, incidenceResource.AssignedDepartmentId, incidenceResource.AssignerId, incidenceResource.AssigneeId, incidenceResource.AssignedOrganizationId); } incidence = await repository.GetIncidence(incidence.Id); var result = mapper.Map <Incidence, IncidenceResource>(incidence); return(Ok(result)); } catch (Exception ex) { ModelState.AddModelError("Error", "An error occured while performing this operation."); return(BadRequest(ModelState)); } //var result = mapper.Map<Incidence, IncidenceResource>(incidence); //return Ok(result); }
public async Task <string> GetNewHazardNotificationMail(EventResource incidenceData, NotificationSettings settings, OrganizationDepartment ReporterDeptData) { var msg = "Dear " + settings?.EntityName + " Member" + ", <br/><br/>A new hazard with the details below has been created<br/><br/>Hazard Description: " + incidenceData?.Description + "<br/>Reporter's Name: " + incidenceData?.ReporterName + " " + "<br/>Reporter's Email: " + incidenceData?.ReporterEmail + " " + "<br/>Reporter's Department: " + ReporterDeptData?.Name + " <br/><br/>IRS Automated Reports"; return(msg); }
public void OrganizationDepartment_Property_Count() { var organizationDepartment = new OrganizationDepartment(); Assert.AreEqual(12, organizationDepartment.GetType().GetProperties().Count()); }
public async Task <string> GetUnderReviewIncidenceNotificationMail(User assigneeUserData, User assignerUserData, EventResource incidenceData, NotificationSettings settings, OrganizationDepartment departmentData, Organization organizationData) { var msg = "Dear " + assigneeUserData?.FirstName + ", <br/><br/>The incidence with the details below is under review<br/><br/>Incidence Description: " + incidenceData?.Description + "<br/>Assigned Department: " + departmentData?.Name + "<br/>Assigned Organization: " + organizationData?.CompanyName + "<br/>Assigner: " + assignerUserData?.FirstName + " " + assignerUserData?.LastName + " (" + assignerUserData?.JobTitle + ") <br/>Assignee: " + assigneeUserData?.FirstName + " " + assigneeUserData?.LastName + " (" + assigneeUserData?.JobTitle + ") <br/><br/>IRS Automated Reports"; return(msg); }
public async Task <IActionResult> CreateIncidence([FromBody] SaveIncidenceResource incidenceResource) { try { var loggedInUserId = _userRepo.GetLoggedInUserId(); var user = await _userRepo.GetUser(loggedInUserId); bool triggerNotification = false; bool triggerDeptNotification = false; //assumes the organization creates this incidence front front-end, notification applies only when its assigned, resolved or closed if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //business rule validation var incidenceCode = !string.IsNullOrEmpty(incidenceResource.Description) ? incidenceResource.Description + "/" + ((incidenceResource.ReportedIncidenceLatitude != null) ? incidenceResource.ReportedIncidenceLatitude : DateTime.Now.Minute) + "/" + ((incidenceResource.ReportedIncidenceLongitude != null) ? incidenceResource.ReportedIncidenceLongitude : DateTime.Now.Minute) : incidenceResource.ReportedIncidenceLatitude + "/" + incidenceResource.ReportedIncidenceLongitude; if (repository.CheckIncidenceCode(incidenceCode)) { ModelState.AddModelError("Error", "The incidence with this Code already exists."); return(BadRequest(ModelState)); } var incidence = mapper.Map <SaveIncidenceResource, Incidence>(incidenceResource); incidence.Deleted = false; // incidence.Protected = true; in other to allow pseudo-deletion which only hides the record incidence.CreatedByUserId = _userRepo.GetLoggedInUserId(); incidence.DateCreated = DateTime.Now; incidence.IncidenceStatusId = incidenceResource.IncidenceStatusId ?? GlobalFields.NewIncidenceStatus; incidence.Code = incidenceCode; //incidence.LastUpdate = DateTime.Now; if (user != null) { var reporterFullName = string.IsNullOrEmpty(user.MiddleName) ? user.FirstName + " " + user.LastName : user.FirstName + " " + user.MiddleName + " " + user.LastName; incidence.ReporterName = reporterFullName ?? ""; incidence.ReporterDepartmentId = user.DepartmentId; incidence.ReporterEmail = user.Email1; } incidence.OrganizationId = user.UserName != "Admin" ? user.OrganizationId : null; // trigger alert when incidence status is open or re-opened provided as Assignee and Assigner were sent if (incidenceResource.AssigneeId != null && (incidenceResource.IncidenceStatusId == GlobalFields.OpenIncidenceStatus || incidenceResource.IncidenceStatusId == GlobalFields.ReOpenedIncidenceStatus)) { incidence.AssignerId = loggedInUserId; triggerNotification = true; } else if (incidenceResource.IncidenceStatusId != incidence.IncidenceStatusId && incidenceResource.IncidenceStatusId == GlobalFields.ClosedIncidenceStatus) { // set resolution date when incidence is closed. No notification here as it incidence was already closed before creation. No Assigner or Assignee before now incidenceResource.ResolutionDate = DateTime.Now; } var incidenceTypeDepartment = new OrganizationDepartment(); if (incidenceResource.IncidenceTypeId != null) { incidenceTypeDepartment = await _incidenceTypeDeptRepo.GetDepartmentFromIncidenceType(incidenceResource.IncidenceTypeId); } incidence.IncidenceStatusId = incidenceResource.IncidenceStatusId ?? GlobalFields.NewIncidenceStatus; if (incidence.IncidenceStatusId == GlobalFields.NewIncidenceStatus && incidenceResource.IncidenceTypeId != null) { incidence.AssignedDepartmentId = incidenceTypeDepartment.Id; incidence.OrganizationId = incidenceTypeDepartment.OrganizationId; incidence.AssignedOrganizationId = incidenceTypeDepartment.OrganizationId; triggerDeptNotification = true; } repository.Add(incidence); await unitOfWork.CompleteAsync(); if (triggerDeptNotification) { //pass the reporter details into incidenceResource as it only exists in incidence and it is needed in email notification incidenceResource.ReporterName = incidence.ReporterName; incidenceResource.ReporterEmail = incidence.ReporterEmail; incidence.ReporterDepartmentId = incidence.ReporterDepartmentId; await _notificationRepo.SendEmailNotificationToOrgDeptUsers(incidenceResource, incidenceTypeDepartment.Id, incidenceTypeDepartment.OrganizationId, incidence.ReporterDepartmentId); // use SendEmailNotificationToOrgDeptUsers method in notificationRepo } if (triggerNotification) { await _notificationRepo.SendIncidenceNotification(incidenceResource, incidenceResource.AssignedDepartmentId, incidenceResource.AssignerId, incidenceResource.AssigneeId, incidenceResource.AssignedOrganizationId); } incidence = await repository.GetIncidence(incidence.Id); var result = mapper.Map <Incidence, IncidenceResource>(incidence); return(Ok(result)); } catch (Exception ex) { ModelState.AddModelError("Error", "An error occured while performing this operation."); return(BadRequest(ModelState)); } }