示例#1
0
        /// <summary>
        /// Validate Servire Rate Main
        /// </summary>
        /// <param name="serviceRtMain"></param>
        /// <param name="addFlag"></param>
        private void ValidateServiceRt(ServiceRtMain serviceRtMain, bool addFlag)
        {
            DateTime oStartDt, serviceStartDt;

            oStartDt = Convert.ToDateTime(serviceRtMain.StartDt);
            if (addFlag)
            {
                //means new Standard Rt is being added
                serviceStartDt = Convert.ToDateTime(serviceRtMain.StartDt);
                if (serviceStartDt.Date < DateTime.Now.Date)
                {
                    throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.ServiceRate.InvalidStartDate));
                }
                List <ServiceRtMain> oServiceRateMain = serviceRtMainRepository.FindByTariffTypeCode(serviceRtMain.TariffTypeCode).ToList();
                if (oServiceRateMain.Count > 0)
                {
                    throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.ServiceRate.ServiceRtByTariffExist));
                }
            }
            if (serviceRtMain.ServiceRts != null)
            {
                foreach (var item in serviceRtMain.ServiceRts)
                {
                    serviceStartDt = Convert.ToDateTime(item.StartDt);
                    if (serviceStartDt.Date < DateTime.Now.Date)
                    {
                        throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.ServiceRate.ServRateCurrentDateViolation));
                    }
                    if (serviceStartDt.Date < oStartDt.Date)
                    {
                        throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.ServiceRate.ServRateInvalidEffectiveDate));
                    }
                }
            }
        }
示例#2
0
        /// <summary>
        /// Add/Edit Service Rate
        /// </summary>
        /// <param name="serviceRtMain"></param>
        /// <returns></returns>
        public ServiceRtMainContent SaveServiceRate(ServiceRtMain serviceRtMain)
        {
            TariffType tariffType = tariffTypeRepository.Find(long.Parse(serviceRtMain.TariffTypeCode));

            serviceRtMain.TariffTypeCode = tariffType.TariffTypeCode;

            ServiceRtMain serviceRtMainDbVersion = serviceRtMainRepository.Find(serviceRtMain.ServiceRtMainId);

            #region Add
            if (serviceRtMainDbVersion == null)
            {
                ValidateServiceRt(serviceRtMain, true);
                serviceRtMain.UserDomainKey    = serviceRtMainRepository.UserDomainKey;
                serviceRtMain.IsActive         = true;
                serviceRtMain.IsDeleted        = false;
                serviceRtMain.IsPrivate        = false;
                serviceRtMain.IsReadOnly       = false;
                serviceRtMain.RecCreatedDt     = DateTime.Now;
                serviceRtMain.RecLastUpdatedDt = DateTime.Now;
                serviceRtMain.RecCreatedBy     = serviceRtMainRepository.LoggedInUserIdentity;
                serviceRtMain.RecLastUpdatedBy = serviceRtMainRepository.LoggedInUserIdentity;
                serviceRtMain.RowVersion       = 0;

                //set child (Service Rate in Service Rate Main) properties
                #region Service Rate in Service Rate Main

                if (serviceRtMain.ServiceRts != null)
                {
                    // set properties
                    foreach (ServiceRt item in serviceRtMain.ServiceRts)
                    {
                        item.IsActive         = true;
                        item.IsDeleted        = false;
                        item.IsPrivate        = false;
                        item.IsReadOnly       = false;
                        item.RecCreatedDt     = DateTime.Now;
                        item.RecLastUpdatedDt = DateTime.Now;
                        item.RecCreatedBy     = serviceRtMainRepository.LoggedInUserIdentity;
                        item.RecLastUpdatedBy = serviceRtMainRepository.LoggedInUserIdentity;
                        item.UserDomainKey    = serviceRtMainRepository.UserDomainKey;
                    }
                }

                #endregion

                serviceRtMainRepository.Add(serviceRtMain);
                serviceRtMainRepository.SaveChanges();
            }
            #endregion

            #region Edit
            else
            {
                ValidateServiceRt(serviceRtMain, false);
                serviceRtMainDbVersion.RecLastUpdatedDt = DateTime.Now;
                serviceRtMainDbVersion.RecLastUpdatedBy = serviceRtMainRepository.LoggedInUserIdentity;
                serviceRtMainDbVersion.StartDt          = serviceRtMain.StartDt;
                //add new Insurance Rate items
                if (serviceRtMain.ServiceRts != null)
                {
                    foreach (ServiceRt serviceRt in serviceRtMain.ServiceRts)
                    {
                        if (
                            serviceRtMainDbVersion.ServiceRts.All(
                                x => x.ServiceRtId != serviceRt.ServiceRtId) ||
                            serviceRt.ServiceRtId == 0)
                        {
                            // set properties
                            serviceRt.IsActive         = true;
                            serviceRt.IsDeleted        = false;
                            serviceRt.IsPrivate        = false;
                            serviceRt.IsReadOnly       = false;
                            serviceRt.RecCreatedDt     = DateTime.Now;
                            serviceRt.RecLastUpdatedDt = DateTime.Now;
                            serviceRt.RecCreatedBy     = serviceRtMainRepository.LoggedInUserIdentity;
                            serviceRt.RecLastUpdatedBy = serviceRtMainRepository.LoggedInUserIdentity;
                            serviceRt.UserDomainKey    = serviceRtMainRepository.UserDomainKey;
                            serviceRt.ServiceRtMainId  = serviceRtMain.ServiceRtMainId;
                            serviceRtMainDbVersion.ServiceRts.Add(serviceRt);
                        }
                        else
                        {
                            serviceRt.IsActive         = true;
                            serviceRt.IsDeleted        = false;
                            serviceRt.IsPrivate        = false;
                            serviceRt.IsReadOnly       = false;
                            serviceRt.RecCreatedDt     = DateTime.Now;
                            serviceRt.RecLastUpdatedDt = DateTime.Now;
                            serviceRt.RecCreatedBy     = serviceRtMainRepository.LoggedInUserIdentity;
                            serviceRt.RecLastUpdatedBy = serviceRtMainRepository.LoggedInUserIdentity;
                            serviceRt.UserDomainKey    = serviceRtMainRepository.UserDomainKey;
                            serviceRt.ServiceRtMainId  = serviceRtMain.ServiceRtMainId;
                            long oldRecordId = serviceRt.ServiceRtId;
                            serviceRt.ServiceRtId    = 0;
                            serviceRt.RevisionNumber = serviceRt.RevisionNumber + 1;
                            serviceRtRepository.Add(serviceRt);
                            serviceRtRepository.SaveChanges();
                            ServiceRt oldServiceRt = serviceRtRepository.Find(oldRecordId);
                            oldServiceRt.ChildServiceRtId = serviceRt.ServiceRtId;
                            serviceRtRepository.SaveChanges();
                        }
                    }
                }
            }
            serviceRtMainRepository.SaveChanges();

            #endregion

            return(new ServiceRtMainContent
            {
                TariffTypeCodeName = tariffType.TariffTypeCode + " - " + tariffType.TariffTypeName,
                TariffTypeId = tariffType.TariffTypeId,
                OperationId = tariffType.Operation.OperationId,
                OperationCodeName = tariffType.Operation.OperationCode + " - " + tariffType.Operation.OperationName,
                ServiceRtMainId = serviceRtMain.ServiceRtMainId,
                ServiceRtMainCode = serviceRtMain.ServiceRtMainCode,
                ServiceRtMainName = serviceRtMain.ServiceRtMainName,
                ServiceRtMainDescription = serviceRtMain.ServiceRtMainDescription,
                StartDt = serviceRtMain.StartDt
            });
        }
示例#3
0
 /// <summary>
 /// Delete Service Rate
 /// </summary>
 /// <param name="serviceRtMain"></param>
 public void DeleteServiceRate(ServiceRtMain serviceRtMain)
 {
     serviceRtMainRepository.Delete(serviceRtMain);
     serviceRtMainRepository.SaveChanges();
 }