Beispiel #1
0
        public void SaveOrUpdate(PartyRole model)
        {
            try
            {
                var partyRoles = new PartyRoles
                {
                    PersonalityRoleCodeId = model.PersonalityRoleCodeId,
                    ValidFrom             = model.ValidFrom.IsValidPersianDate() ? model.ValidFrom.ConvertJalaliToMiladi() : default(DateTime),
                    Created    = DateTime.Now,
                    Modified   = DateTime.Now,
                    CreatedBy  = model.CreatedBy,
                    ModifiedBy = model.ModifiedBy
                };

                if (string.IsNullOrEmpty(model.ValidUntil))
                {
                    partyRoles.ValidUntil = null;
                }
                else
                {
                    partyRoles.ValidUntil = model.ValidUntil.ConvertJalaliToMiladi();
                }
                var newParty = new Domain.Entity.Party
                {
                    NationalId = string.IsNullOrEmpty(model.NationalId)
                    ? new Guid().ToString()
                    : model.NationalId.SafeString().SafeTrim().Replace("-", ""),
                    CreatedBy          = model.CreatedBy,
                    ModifiedBy         = model.ModifiedBy,
                    Modified           = DateTime.Now,
                    Created            = DateTime.Now,
                    ValidFrom          = model.ValidFrom.ConvertJalaliToMiladi(),
                    ValidUntil         = null,
                    FirstName          = model.PartyType == (int)PartyType.Retail ? model.PartyFirstName.SafePersianEncode().SafeString() : null,
                    LastName           = model.PartyType == (int)PartyType.Retail ? model.PartyLastName.SafePersianEncode().SafeString() : null,
                    Name               = model.PartyType == (int)PartyType.Institutional ? model.PartyName : null,
                    PartyType          = model.PartyType,
                    NationalityPlaceId = 1
                };
                newParty.FullName = string.IsNullOrEmpty(newParty.Name)
                    ? (newParty.FirstName + " " + newParty.LastName).SafeString().SafeTrim()
                    : newParty.Name.SafeString().SafeTrim();

                var party = PartyService.GetByNationalId(model.NationalId);
                if (party != null)
                {
                    UpdatePartyRole(model, partyRoles, party, newParty);
                }
                else
                {
                    // SavePartyRole(newParty, partyRoles);
                }
            }
            catch (Exception e)
            {
                Logger.ErrorException(e.Message, e);
                throw;
            }
        }
        } // !FromString()

        internal static string EnumToString(this PartyRoles c)
        {
            try
            {
                return(_Mapping.Single(m => m.Value.Equals(c)).Key);
            }
            catch (Exception)
            {
                return("unknown");
            }
        } // !ToString()
        internal static PartyRoles FromString(this PartyRoles _, string s)
        {
            s = s.ToLower().Trim();

            try
            {
                return(_Mapping.Single(m => m.Key.Equals(s)).Value);
            }
            catch (Exception)
            {
                return(PartyRoles.Unknown);
            }
        } // !FromString()
Beispiel #4
0
        //private void SavePartyRole(Party newParty, PartyRoles partyRoles)
        //{
        //    var partyDetailLedger = SetPartyDetailLedger(newParty);
        //    var dbFactory = CoreContainer.Container.Resolve<IDbFactory>();
        //    using (var uow = dbFactory.Create<IUnitOfWork, ISession>(IsolationLevel.Serializable))
        //    {
        //        try
        //        {
        //            newParty.DetailLedgerCode = partyDetailLedger.Code;
        //            var pid = PartyService.SaveSimpleParty(newParty, uow);
        //            partyRoles.PartyId = pid;
        //            PartyRolesService.Save(partyRoles, uow);
        //        }
        //        catch (Exception ex)
        //        {
        //            uow.Rollback();
        //            throw ex;
        //        }
        //    }
        //}

        private void UpdatePartyRole(PartyRole model, PartyRoles partyRoles, Party party, Party newParty)
        {
            partyRoles.PartyId = party.Id;
            var exist = PartyRolesService.GetRoleByPartyId(party.Id,
                                                           (PersonalityRole)model.PersonalityRoleCodeId);

            if (exist != null)
            {
                partyRoles.Id = exist.Id;
                var dbFactory = CoreContainer.Container.Resolve <IDbFactory>();
                using (var uow = dbFactory.Create <IUnitOfWork, ISession>(IsolationLevel.Serializable))
                {
                    try
                    {
                        newParty.Id = party.Id;
                        PartyService.UpdateSimpleParty(newParty, uow);
                        PartyRolesService.SaveOrUpdate(partyRoles, uow);
                    }
                    catch (Exception ex)
                    {
                        uow.Rollback();
                        throw ex;
                    }
                }
            }
            else
            {
                var dbFactory = CoreContainer.Container.Resolve <IDbFactory>();
                using (var uow = dbFactory.Create <IUnitOfWork, ISession>(IsolationLevel.Serializable))
                {
                    try
                    {
                        newParty.Id = party.Id;
                        PartyService.UpdateSimpleParty(newParty, uow);
                        PartyRolesService.Save(partyRoles, uow);
                    }
                    catch (Exception ex)
                    {
                        uow.Rollback();
                        throw ex;
                    }
                }
            }
        }