/// <summary> /// Validate Insurance Rate Main /// </summary> /// <param name="insuranceRtMain"></param> /// <param name="addFlag"></param> private void ValidateInsuranceRate(InsuranceRtMain insuranceRtMain, bool addFlag) { DateTime oStartDt, insRtStartDate; oStartDt = Convert.ToDateTime(insuranceRtMain.StartDt); if (addFlag) { //means new Standard Rt is being added insRtStartDate = Convert.ToDateTime(insuranceRtMain.StartDt); if (insRtStartDate.Date < DateTime.Now.Date) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.InsuranceRate.InvalidStartDate)); } List <InsuranceRtMain> oStRateMain = insuranceRtMainRepository.FindByTariffTypeCode(insuranceRtMain.TariffTypeCode).ToList(); if (oStRateMain.Count > 0) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.InsuranceRate.InsuranceRtByTariffExist)); } } if (insuranceRtMain.InsuranceRates != null) { foreach (var item in insuranceRtMain.InsuranceRates) { insRtStartDate = Convert.ToDateTime(item.StartDt); if (insRtStartDate.Date < DateTime.Now.Date) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.InsuranceRate.InsRateCurrentDateViolation)); } if (insRtStartDate.Date < oStartDt.Date) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.InsuranceRate.InsuranceRateInvalidEffectiveDate)); } } } }
/// <summary> /// Delete Insurance Rate /// </summary> /// <param name="insuranceRtMain"></param> public void DeleteInsuranceRate(InsuranceRtMain insuranceRtMain) { insuranceRtMainRepository.Delete(insuranceRtMain); insuranceRtMainRepository.SaveChanges(); }
/// <summary> /// Add/Edit Insurance Rate /// </summary> /// <param name="insuranceRtMain"></param> /// <returns></returns> public InsuranceRtMainContent SaveInsuranceRate(InsuranceRtMain insuranceRtMain) { TariffType tariffType = tariffTypeRepository.Find(long.Parse(insuranceRtMain.TariffTypeCode)); insuranceRtMain.TariffTypeCode = tariffType.TariffTypeCode; InsuranceRtMain insuranceRtMainDbVersion = insuranceRtMainRepository.Find(insuranceRtMain.InsuranceRtMainId); #region Add if (insuranceRtMainDbVersion == null) { ValidateInsuranceRate(insuranceRtMain, true); insuranceRtMain.UserDomainKey = insuranceRtMainRepository.UserDomainKey; insuranceRtMain.IsActive = true; insuranceRtMain.IsDeleted = false; insuranceRtMain.IsPrivate = false; insuranceRtMain.IsReadOnly = false; insuranceRtMain.RecCreatedDt = DateTime.Now; insuranceRtMain.RecLastUpdatedDt = DateTime.Now; insuranceRtMain.RecCreatedBy = insuranceRtMainRepository.LoggedInUserIdentity; insuranceRtMain.RecLastUpdatedBy = insuranceRtMainRepository.LoggedInUserIdentity; insuranceRtMain.RowVersion = 0; //insuranceRtMainRepository.Add(insuranceRtMain); //set child (Insurance Rate in Insurance Rate Main) properties #region Insurance Rate in Insurance Rate Main if (insuranceRtMain.InsuranceRates != null) { // set properties foreach (InsuranceRt item in insuranceRtMain.InsuranceRates) { item.IsActive = true; item.IsDeleted = false; item.IsPrivate = false; item.IsReadOnly = false; item.RecCreatedDt = DateTime.Now; item.RecLastUpdatedDt = DateTime.Now; item.RecCreatedBy = insuranceRtMainRepository.LoggedInUserIdentity; item.RecLastUpdatedBy = insuranceRtMainRepository.LoggedInUserIdentity; item.UserDomainKey = insuranceRtMainRepository.UserDomainKey; } } #endregion insuranceRtMainRepository.Add(insuranceRtMain); insuranceRtMainRepository.SaveChanges(); } #endregion #region Edit else { ValidateInsuranceRate(insuranceRtMain, false); insuranceRtMainDbVersion.RecLastUpdatedDt = DateTime.Now; insuranceRtMainDbVersion.RecLastUpdatedBy = insuranceRtMainRepository.LoggedInUserIdentity; insuranceRtMainDbVersion.StartDt = insuranceRtMain.StartDt; //add new Insurance Rate items if (insuranceRtMain.InsuranceRates != null) { foreach (InsuranceRt insuranceRt in insuranceRtMain.InsuranceRates) { if ( insuranceRtMainDbVersion.InsuranceRates.All( x => x.InsuranceRtId != insuranceRt.InsuranceRtId) || insuranceRt.InsuranceRtId == 0) { // set properties insuranceRt.IsActive = true; insuranceRt.IsDeleted = false; insuranceRt.IsPrivate = false; insuranceRt.IsReadOnly = false; insuranceRt.RecCreatedDt = DateTime.Now; insuranceRt.RecLastUpdatedDt = DateTime.Now; insuranceRt.RecCreatedBy = insuranceRtMainRepository.LoggedInUserIdentity; insuranceRt.RecLastUpdatedBy = insuranceRtMainRepository.LoggedInUserIdentity; insuranceRt.UserDomainKey = insuranceRtMainRepository.UserDomainKey; insuranceRt.InsuranceRtMainId = insuranceRtMain.InsuranceRtMainId; insuranceRtMainDbVersion.InsuranceRates.Add(insuranceRt); } else { insuranceRt.IsActive = true; insuranceRt.IsDeleted = false; insuranceRt.IsPrivate = false; insuranceRt.IsReadOnly = false; insuranceRt.RecCreatedDt = DateTime.Now; insuranceRt.RecLastUpdatedDt = DateTime.Now; insuranceRt.RecCreatedBy = insuranceRtMainRepository.LoggedInUserIdentity; insuranceRt.RecLastUpdatedBy = insuranceRtMainRepository.LoggedInUserIdentity; insuranceRt.UserDomainKey = insuranceRtMainRepository.UserDomainKey; insuranceRt.InsuranceRtMainId = insuranceRtMain.InsuranceRtMainId; long oldRecordId = insuranceRt.InsuranceRtId; insuranceRt.InsuranceRtId = 0; insuranceRt.RevisionNumber = insuranceRt.RevisionNumber + 1; insuranceRtRepository.Add(insuranceRt); insuranceRtRepository.SaveChanges(); InsuranceRt oldInsuranceRt = insuranceRtRepository.Find(oldRecordId); oldInsuranceRt.ChildInsuranceRtId = insuranceRt.InsuranceRtId; insuranceRtRepository.SaveChanges(); } } } } #endregion insuranceRtMainRepository.SaveChanges(); return(new InsuranceRtMainContent { TariffTypeCodeName = tariffType.TariffTypeCode + " - " + tariffType.TariffTypeName, TariffTypeId = tariffType.TariffTypeId, OperationId = tariffType.Operation.OperationId, OperationCodeName = tariffType.Operation.OperationCode + " - " + tariffType.Operation.OperationName, InsuranceRtMainId = insuranceRtMain.InsuranceRtMainId, InsuranceRtMainCode = insuranceRtMain.InsuranceRtMainCode, InsuranceRtName = insuranceRtMain.InsuranceRtMainCode, InsuranceRtMainDescription = insuranceRtMain.InsuranceRtMainDescription, StartDt = insuranceRtMain.StartDt }); }