public List <LimitCheckModel> CheckAllSET(DateTime ProcessingDate, DA_TRN trn, Guid ExcludeID1, Guid ExcludeID2) { CounterpartyBusiness _counterpartyBusiness = new CounterpartyBusiness(); List <LimitCheckModel> results = GetSCEByCriteria(ProcessingDate, trn.CTPY_ID, trn.PRODUCT_ID.Value, "", ExcludeID1, ExcludeID2); //Get group exposure MA_COUTERPARTY ctpy = _counterpartyBusiness.GetCounterpartyAll().FirstOrDefault(p => p.ID == trn.CTPY_ID); if (ctpy != null && ctpy.GROUP_CTPY_ID != null) { var group = GetSCEByCriteria(ProcessingDate, ctpy.GROUP_CTPY_ID.Value, trn.PRODUCT_ID.Value, "", ExcludeID1, ExcludeID2); results = results.Union(group).ToList(); } //Get temp limit //Look for temp limit when all conditions meet // 1. Transaction maturity date <= Temp limit maturity date foreach (LimitCheckModel result in results) { MA_TEMP_CTPY_LIMIT temp_limit = _counterpartyBusiness.GetActiveTempByID(ProcessingDate, trn.MATURITY_DATE.Value, result.CTPY_LIMIT_ID); if (temp_limit != null) { result.TEMP_AMOUNT = temp_limit.AMOUNT; } //result.AMOUNT = result.AMOUNT + temp_limit.AMOUNT; } return(results); }
public static object Update(SessionInfo sessioninfo, MA_COUTERPARTY record) { try { if (record.ID == record.GROUP_CTPY_ID) { throw new Exception("Group can't same as Counterparty."); } CounterpartyBusiness _counterpartyBusiness = new CounterpartyBusiness(); record.SNAME = record.SNAME.ToUpper(); record.TBMA_NAME = record.TBMA_NAME.ToUpper(); record.FNAME = record.FNAME.ToUpper(); record.BUSINESS = record.BUSINESS.ToUpper(); record.ISACTIVE = record.ISACTIVE == null || !record.ISACTIVE.Value ? false : true; record.LOG.MODIFYBYUSERID = sessioninfo.CurrentUserId; record.LOG.MODIFYDATE = DateTime.Now; record.GROUP_CTPY_ID = record.GROUP_CTPY_ID == Guid.Empty ? null : record.GROUP_CTPY_ID; var addedRecord = _counterpartyBusiness.Update(sessioninfo, record); return(new { Result = "OK", Record = addedRecord }); } catch (Exception ex) { return(new { Result = "ERROR", Message = ex.Message }); } }
public List <LimitCheckModel> CheckAllCountry(DateTime ProcessingDate, DA_TRN trn, Guid ExcludeID1, Guid ExcludeID2) { CounterpartyBusiness _counterpartyBusiness = new CounterpartyBusiness(); CountryBusiness _countryBusiness = new CountryBusiness(); List <LimitCheckModel> results = new List <LimitCheckModel>(); LimitCheckModel result; LimitCheckModel temp = new LimitCheckModel(); LimitCheckModel pce = new LimitCheckModel(); MA_COUTERPARTY ctpy = _counterpartyBusiness.GetCounterpartyAll().FirstOrDefault(p => p.ID == trn.CTPY_ID); List <LimitCheckModel> sets = GetCountrySETByCriteria(ProcessingDate, ctpy.COUNTRY_ID, "", ExcludeID1, ExcludeID2); List <LimitCheckModel> pces = GetCountryPCEByCriteria(ProcessingDate, ctpy.COUNTRY_ID, "", ExcludeID1, ExcludeID2); if (pces.Count != 1) { throw new Exception("Invalid country limit data. Please contact administrator"); } else { pce = pces.FirstOrDefault(); } MA_COUNTRY_LIMIT temp_limit = _countryBusiness.GetActiveTempByCountryID(ProcessingDate, trn.MATURITY_DATE.Value, ctpy.COUNTRY_ID); DateTime dateStart = trn.TRADE_DATE.Value; DateTime dateEnd = trn.FLAG_SETTLE.HasValue && trn.FLAG_SETTLE.Value ? trn.DA_TRN_FLOW.Max(p => p.FLOW_DATE).Value : trn.TRADE_DATE.Value; while (dateStart <= dateEnd) { result = new LimitCheckModel(); temp = sets.FirstOrDefault(p => p.FLOW_DATE == dateStart); result.COUNTRY_LABEL = pce.COUNTRY_LABEL; result.COUNTRY_ID = pce.COUNTRY_ID; result.FLAG_CONTROL = pce.FLAG_CONTROL; result.GEN_AMOUNT = pce.GEN_AMOUNT; result.TEMP_AMOUNT = temp_limit != null ? temp_limit.AMOUNT : 0; //result.AMOUNT = pce.AMOUNT + (temp_limit != null ? temp_limit.AMOUNT : 0); result.PROCESSING_DATE = pce.PROCESSING_DATE; result.EXPIRE_DATE = pce.EXPIRE_DATE; result.FLOW_DATE = dateStart; result.ORIGINAL_KK_CONTRIBUTE = pce.ORIGINAL_KK_CONTRIBUTE; if (temp != null) { result.ORIGINAL_KK_CONTRIBUTE = result.ORIGINAL_KK_CONTRIBUTE + temp.ORIGINAL_KK_CONTRIBUTE; } results.Add(result); //if (dateStart.DayOfWeek == DayOfWeek.Friday) // dateStart = dateStart.AddDays(3); //else dateStart = dateStart.AddDays(1); } return(results); }
public void CreateTest() { CounterpartyBusiness target = new CounterpartyBusiness(); // TODO: Initialize to an appropriate value SessionInfo sessioninfo = null; // TODO: Initialize to an appropriate value MA_COUTERPARTY counterparty = null; // TODO: Initialize to an appropriate value MA_COUTERPARTY expected = null; // TODO: Initialize to an appropriate value MA_COUTERPARTY actual; actual = target.Create(sessioninfo, counterparty); Assert.AreEqual(expected, actual); Assert.Inconclusive("Verify the correctness of this test method."); }
public static object Create(SessionInfo sessioninfo, MA_COUTERPARTY record) { try { CounterpartyBusiness _counterpartyBusiness = new CounterpartyBusiness(); LookupBusiness _lookupBusiness = new LookupBusiness(); MA_CTPY_LIMIT cplimit; record.ID = Guid.NewGuid(); record.SNAME = record.SNAME.ToUpper(); record.TBMA_NAME = record.TBMA_NAME.ToUpper(); record.FNAME = record.FNAME.ToUpper(); record.BUSINESS = record.BUSINESS.ToUpper(); record.ISACTIVE = record.ISACTIVE == null || !record.ISACTIVE.Value ? false : true; record.LOG.INSERTDATE = DateTime.Now; record.LOG.INSERTBYUSERID = sessioninfo.CurrentUserId; record.GROUP_CTPY_ID = record.GROUP_CTPY_ID == Guid.Empty ? null : record.GROUP_CTPY_ID; //Prepare Counterparty-Limit data List <MA_LIMIT> limits = _lookupBusiness.GetLimitAll(); foreach (MA_LIMIT limit in limits) { cplimit = new MA_CTPY_LIMIT(); cplimit.ID = Guid.NewGuid(); cplimit.CTPY_ID = record.ID; cplimit.LIMIT_ID = limit.ID; cplimit.FLAG_CONTROL = true; cplimit.AMOUNT = 0; cplimit.EXPIRE_DATE = sessioninfo.Process.CurrentDate; cplimit.LOG.INSERTDATE = DateTime.Now; cplimit.LOG.INSERTBYUSERID = sessioninfo.CurrentUserId; record.MA_CTPY_LIMIT.Add(cplimit); } var addedRecord = _counterpartyBusiness.Create(sessioninfo, record); addedRecord.MA_CTPY_LIMIT.Clear(); return(new { Result = "OK", Record = addedRecord }); } catch (Exception ex) { return(new { Result = "ERROR", Message = ex.Message }); } }
public MA_COUTERPARTY Create(SessionInfo sessioninfo, MA_COUTERPARTY counterparty) { using (EFUnitOfWork unitOfWork = new EFUnitOfWork()) { var checkDuplicate1 = unitOfWork.MA_COUTERPARTYRepository.All().FirstOrDefault(p => p.USERCODE == counterparty.USERCODE); if (checkDuplicate1 != null) { throw this.CreateException(new Exception(), "OPICS ID is duplicated"); } var checkDuplicate2 = unitOfWork.MA_COUTERPARTYRepository.All().FirstOrDefault(p => p.SNAME == counterparty.SNAME); if (checkDuplicate2 != null) { throw this.CreateException(new Exception(), "Short name is duplicated"); } LogBusiness logBusiness = new LogBusiness(); unitOfWork.DA_LOGGINGRepository.Add(logBusiness.CreateLogging(sessioninfo, counterparty.ID, LogEvent.COUNTERPARTY_AUDIT.ToString(), LookupFactorTables.MA_COUTERPARTY, "Counterparty", new { })); unitOfWork.MA_COUTERPARTYRepository.Add(counterparty); unitOfWork.Commit(); } return(counterparty); }
public MA_PCCF ValidatePCCFConfig(SessionInfo sessioninfo, DA_TRN record) { MA_PCCF val = null; bool blnResult; //enter conditions LoggingHelper.Debug("Begin validate PCCF from config"); using (EFUnitOfWork unitOfWork = new EFUnitOfWork()) { var props = record.GetType().GetProperties(); var configs = unitOfWork.MA_PCCF_CONFIGRepository.GetAll() .Where(p => p.PRODUCT_ID.Equals(record.PRODUCT_ID)) .OrderBy(p => p.PRIORITY); //bool isBond = string.Compare(unitOfWork.MA_PRODUCTRepository.GetById(record.PRODUCT_ID.Value).LABEL, ProductCode.BOND.ToString(), true) == 0; if (configs != null) { List <bool> ismatchs = new List <bool>(); object obj; foreach (MA_PCCF_CONFIG p in configs.ToList()) { ismatchs.Clear(); blnResult = false; //List<MA_CONFIG_ATTRIBUTE> atts = unitOfWork.MA_CONFIG_ATTRIBUTERepository.All().Where(t => t.PCCF_CONFIG_ID == p.ID && t.ISACTIVE == true).ToList() ; foreach (MA_CONFIG_ATTRIBUTE ca in p.MA_CONFIG_ATTRIBUTE.Where(t => t.ISACTIVE == true).ToList()) { //Fix for Tables switch (ca.TABLE) { case "DA_TRN": var sel = props.FirstOrDefault(t => t.Name.Equals(ca.ATTRIBUTE)); if (sel != null) { if (sel.GetValue(record, null).GetType() == typeof(Guid)) { switch (ca.ATTRIBUTE) { //Fix for fields case "INSTRUMENT_ID": obj = new MA_INSTRUMENT(); obj = unitOfWork.MA_INSTRUMENTRepository.GetByIDWithOutInclude(new Guid(sel.GetValue(record, null).ToString())); blnResult = ((MA_INSTRUMENT)obj).LABEL.Equals(ca.VALUE, StringComparison.CurrentCultureIgnoreCase); //ismatchs.Add(blnResult); break; default: break; } } else if (sel.GetValue(record, null).GetType() == typeof(Boolean)) { blnResult = sel.GetValue(record, null).Equals(ca.VALUE == "0" ? false : true); // ismatchs.Add(fsel.GetValue(record.FIRST, null).Equals(ca.VALUE=="0" ? false : true)); } else { blnResult = sel.GetValue(record, null).ToString().Equals(ca.VALUE, StringComparison.CurrentCultureIgnoreCase); //ismatchs.Add(blnResult); } } break; case "BOND_MARKET": MA_INSTRUMENT insMkt = unitOfWork.MA_INSTRUMENTRepository.GetByIDWithInsMarket(record.INSTRUMENT_ID.Value); if (insMkt.MA_BOND_MARKET != null) { blnResult = insMkt.MA_BOND_MARKET.LABEL.Equals(ca.VALUE); //ismatchs.Add(blnResult); } //else //ismatchs.Add(false); break; case "FIRST": var fsel = record.FIRST.GetType().GetProperties().FirstOrDefault(f => f.Name.Equals(ca.ATTRIBUTE)); if (fsel != null) { if (fsel.GetValue(record.FIRST, null) != null) { if (fsel.GetValue(record.FIRST, null).GetType() == typeof(Guid)) { switch (ca.ATTRIBUTE) { //Fix for fields case "CCY_ID": obj = new MA_CURRENCY(); obj = unitOfWork.MA_CURRENCYRepository.GetByID(new Guid(fsel.GetValue(record.FIRST, null).ToString())); blnResult = ((MA_CURRENCY)obj).LABEL.Equals(ca.VALUE, StringComparison.CurrentCultureIgnoreCase); //ismatchs.Add(); break; default: break; } } else if (fsel.GetValue(record.FIRST, null).GetType() == typeof(Boolean)) { blnResult = fsel.GetValue(record.FIRST, null).Equals(ca.VALUE == "0" ? false : true); // ismatchs.Add(fsel.GetValue(record.FIRST, null).Equals(ca.VALUE=="0" ? false : true)); } else { blnResult = fsel.GetValue(record.FIRST, null).ToString().Equals(ca.VALUE, StringComparison.CurrentCultureIgnoreCase); //ismatchs.Add(fsel.GetValue(record.FIRST, null).ToString().Equals(ca.VALUE, StringComparison.CurrentCultureIgnoreCase)); } } //else ismatchs.Add(false); } break; case "SECOND": //var secprop = props.FirstOrDefault(f => f.Name.Equals("SECOND")); var ssel = record.SECOND.GetType().GetProperties().FirstOrDefault(f => f.Name.Equals(ca.ATTRIBUTE)); if (ssel != null) { if (ssel.GetValue(record.SECOND, null) != null) { if (ssel.GetValue(record.SECOND, null).GetType() == typeof(Guid)) { switch (ca.ATTRIBUTE) { //Fix for fields case "CCY_ID": obj = new MA_CURRENCY(); obj = unitOfWork.MA_CURRENCYRepository.GetByID(new Guid(ssel.GetValue(record.SECOND, null).ToString())); blnResult = ((MA_CURRENCY)obj).LABEL.Equals(ca.VALUE, StringComparison.CurrentCultureIgnoreCase); //ismatchs.Add(((MA_CURRENCY)obj).LABEL.Equals(ca.VALUE, StringComparison.CurrentCultureIgnoreCase)); break; default: break; } } else if (ssel.GetValue(record.SECOND, null).GetType() == typeof(Boolean)) { blnResult = ssel.GetValue(record.SECOND, null).Equals(ca.VALUE == "0" ? false : true); // ismatchs.Add(ssel.GetValue(record.SECOND, null).Equals(ca.VALUE == "0" ? false : true)); } else { blnResult = ssel.GetValue(record.SECOND, null).ToString().Equals(ca.VALUE, StringComparison.CurrentCultureIgnoreCase); // ismatchs.Add(ssel.GetValue(record.SECOND, null).ToString().Equals(ca.VALUE, StringComparison.CurrentCultureIgnoreCase)); } } //else ismatchs.Add(false); } break; case "COUNTERPARTY": MA_COUTERPARTY ctpy = unitOfWork.MA_COUTERPARTYRepository.GetAll().FirstOrDefault(z => z.ID == record.CTPY_ID); switch (ca.ATTRIBUTE) { case "SNAME": blnResult = ctpy.SNAME.ToUpper() == ca.VALUE.ToUpper(); break; case "CSA_TYPE": MA_CSA_AGREEMENT csa = unitOfWork.MA_CSA_AGREEMENTRepository.GetAll().FirstOrDefault(y => y.ID == record.CTPY_ID); if (csa != null && csa.MA_CSA_TYPE.LABEL.ToUpper() == ca.VALUE.ToUpper() && csa.MA_CSA_PRODUCT.FirstOrDefault(y => y.PRODUCT_ID == record.PRODUCT_ID) != null) { blnResult = true; } //else if (csa == null && ca.VALUE == "") // blnResult = true; else { blnResult = false; } break; default: break; } break; } ismatchs.Add(blnResult); //Check result -> if false then go to next config if (!blnResult) { break; } } if (ismatchs.Where(m => m.Equals(false)).Count() == 0) { val = unitOfWork.MA_PCCFRepository.GetByID(p.PCCF_ID); LoggingHelper.Debug("PCCF: " + val.LABEL); break; } else { continue; } } } else { val = null; } } LoggingHelper.Debug("End validate PCCF from config"); return(val); }
public MA_COUTERPARTY Update(SessionInfo sessioninfo, MA_COUTERPARTY counterparty) { using (EFUnitOfWork unitOfWork = new EFUnitOfWork()) { var checkDuplicate1 = unitOfWork.MA_COUTERPARTYRepository.All().FirstOrDefault(p => p.USERCODE == counterparty.USERCODE && p.ID != counterparty.ID); if (checkDuplicate1 != null) { throw this.CreateException(new Exception(), "OPICS ID is duplicated"); } var checkDuplicate2 = unitOfWork.MA_COUTERPARTYRepository.All().FirstOrDefault(p => p.SNAME == counterparty.SNAME && p.ID != counterparty.ID); if (checkDuplicate2 != null) { throw this.CreateException(new Exception(), "Short name is duplicated"); } var foundData = unitOfWork.MA_COUTERPARTYRepository.All().FirstOrDefault(p => p.ID == counterparty.ID); if (foundData == null) { throw this.CreateException(new Exception(), "Data not found!"); } else { LogBusiness logBusiness = new LogBusiness(); string strOldGroupName = ""; string strNewGroupName = ""; if (foundData.GROUP_CTPY_ID != null) { var oldGroup = unitOfWork.MA_COUTERPARTYRepository.All().FirstOrDefault(p => p.GROUP_CTPY_ID == foundData.GROUP_CTPY_ID); strOldGroupName = oldGroup != null ? oldGroup.SNAME : ""; } if (counterparty.GROUP_CTPY_ID != null) { var newGroup = unitOfWork.MA_COUTERPARTYRepository.All().FirstOrDefault(p => p.GROUP_CTPY_ID == counterparty.GROUP_CTPY_ID); strNewGroupName = newGroup != null ? newGroup.SNAME : ""; } var oldRecord = new { USERCODE = foundData.USERCODE , BUSINESS = foundData.BUSINESS , FNAME = foundData.FNAME , SNAME = foundData.SNAME , TBMA_NAME = foundData.TBMA_NAME , GROUP = strOldGroupName , OUTLOOK = foundData.OUTLOOK , RATE = foundData.RATE , ISACTIVE = foundData.ISACTIVE }; var newRecord = new { USERCODE = counterparty.USERCODE , BUSINESS = counterparty.BUSINESS , FNAME = counterparty.FNAME , SNAME = counterparty.SNAME , TBMA_NAME = counterparty.TBMA_NAME , GROUP = strNewGroupName , OUTLOOK = counterparty.OUTLOOK , RATE = counterparty.RATE , ISACTIVE = counterparty.ISACTIVE }; var log = logBusiness.UpdateLogging(sessioninfo, foundData.ID, LogEvent.COUNTERPARTY_AUDIT.ToString(), LookupFactorTables.MA_COUTERPARTY, oldRecord, newRecord); if (log != null) { unitOfWork.DA_LOGGINGRepository.Add(log); } foundData.ID = counterparty.ID; foundData.USERCODE = counterparty.USERCODE; foundData.ISACTIVE = counterparty.ISACTIVE; foundData.LOG.MODIFYBYUSERID = sessioninfo.CurrentUserId; foundData.LOG.MODIFYDATE = DateTime.Now; foundData.BUSINESS = counterparty.BUSINESS; foundData.FNAME = counterparty.FNAME; foundData.SNAME = counterparty.SNAME; foundData.OUTLOOK = counterparty.OUTLOOK; foundData.RATE = counterparty.RATE; foundData.TBMA_NAME = counterparty.TBMA_NAME; foundData.GROUP_CTPY_ID = counterparty.GROUP_CTPY_ID; foundData.COUNTRY_ID = counterparty.COUNTRY_ID; unitOfWork.Commit(); } } return(counterparty); }
public static object Update(MA_COUTERPARTY record) { return(CounterpartyUIP.Update(SessionInfo, record)); }