public MandantWrapper[] MandantGet() { try { Log.InfoFormat("Start of MandantGet"); var result = new List <MandantWrapper>(); var mgr = IoC.Instance.Resolve <IBaseManager <Mandant> >(); var mandantList = mgr.GetAll().ToArray(); foreach (var m in mandantList) { var mw = new MandantWrapper(); mw = MapTo(m, mw); if (m.Address != null) { mw.ADDRESS = new List <AddressBookWrapper>(); foreach (var aw in from a in m.Address let aw = new AddressBookWrapper() select MapTo(a, aw)) { mw.ADDRESS.Add(aw); } } if (m.GlobalParamVal != null) { mw.GLOBALPARAMVAL = new List <MandantGpvWrapper>(); foreach (var g in m.GlobalParamVal) { var gw = new MandantGpvWrapper(); gw = MapTo(g, gw); mw.GLOBALPARAMVAL.Add(gw); } } result.Add(mw); } return(result.ToArray()); } catch (Exception ex) { Log.Error(ex.Message, ex); Log.Debug(ex); throw new FaultException <string>(ex.Message, new FaultReason(ex.Message)); } finally { Log.InfoFormat("End of MandantGet"); } }
public BillWorkActWrapper[] BillWorkActGet(string filter) { Log.InfoFormat("Start of BillWorkActGet"); Log.Debug("Получен параметр"); Log.DebugFormat("фильтр = '{0}'", filter); try { var wal = new List <BillWorkActWrapper>(); using (var mgr = IoC.Instance.Resolve <IBaseManager <BillWorkAct> >()) { // TODO: добавить в фильтр проверку - //a) Акт не отправлен в 1С (Признак отправки акта = «Не отправлен»). //b) Акт имеет статус «Зафиксирован» или «Отменен». if (String.IsNullOrEmpty(filter)) { filter = "STATUSCODE_R not in ('WORKACT_TEMPLATE','WORKACT_CALC')"; } var actList = mgr.GetFiltered(filter); foreach (var act in actList) { var wrap = new BillWorkActWrapper(); wrap = MapTo(act, wrap); //Заполняем if (act.WorkActDetailExL != null) { List <BillWorkActDetail> detailList; using (var mgrDetail = IoC.Instance.Resolve <IBaseManager <BillWorkActDetail> >()) { var details = mgrDetail.GetFiltered(string.Format("WORKACTID_R = {0}", act.GetKey())); if (details == null) { continue; } detailList = details.ToList(); } var res = detailList.GroupBy(p => new { p.Operation2ContractID, p.WorkActDetailMulti }); wrap.WORKACTDETAILEXL = new List <BillWorkActDetailExWrapper>(); foreach (var r in res) { var detailWrapper = new BillWorkActDetailExWrapper(); detailWrapper.MULT = r.Key.WorkActDetailMulti; detailWrapper.OPERATION2CONTRACTID_R = r.Key.Operation2ContractID; var count = r.Sum(w => w.WorkActDetailCount); detailWrapper.TOTALCOUNT = count.HasValue ? Math.Round(count.Value, 2) : (double?)null; var sum = r.Sum(w => w.WorkActDetailTotalSum); detailWrapper.TOTALSUM = sum.HasValue ? Math.Round(sum.Value, 2) : (double?)null; detailWrapper.WORKACTID_R = act.GetKey <decimal>(); wrap.WORKACTDETAILEXL.Add(detailWrapper); } } if (act.CONTRACTID_R != null) { using (var cnt = IoC.Instance.Resolve <IBaseManager <BillContract> >()) { var contract = cnt.Get(act.CONTRACTID_R); if (contract != null) { var contractWrapper = new BillContractWrapper(); contractWrapper = MapTo(contract, contractWrapper); if (contract.BillOperation2ContractL != null && contract.BillOperation2ContractL.Count > 0) { contractWrapper.BILLOPERATION2CONTRACTL = new List <BillOperation2ContractWrapper>(); foreach (var operationContract in contract.BillOperation2ContractL) { var operationContractWrapper = new BillOperation2ContractWrapper(); operationContractWrapper = MapTo(operationContract, operationContractWrapper); if (operationContract.BILLOPERATION2CONTRACTANALYTICSCODE != null) { using (var baOwn = IoC.Instance.Resolve <IBaseManager <BillAnalytics> >()) { var analiticsOwner = baOwn.Get(operationContract.BILLOPERATION2CONTRACTANALYTICSCODE); if (analiticsOwner != null) { var operationAnaliticsWrapper = new BillAnalyticsWrapper(); operationAnaliticsWrapper = MapTo(analiticsOwner, operationAnaliticsWrapper); operationContractWrapper.BILLANALYTICS = operationAnaliticsWrapper; } } } contractWrapper.BILLOPERATION2CONTRACTL.Add(operationContractWrapper); } } if (contract.CONTRACTOWNER != null) { using (var cntOwn = IoC.Instance.Resolve <IBaseManager <Mandant> >()) { var contractOwner = cntOwn.Get(contract.CONTRACTOWNER); if (contractOwner != null) { var mandantWrapper = new MandantWrapper(); mandantWrapper = MapTo(contractOwner, mandantWrapper); contractWrapper.CONTRACTOWNEROBJ = mandantWrapper; } } } if (contract.CONTRACTCUSTOMER != null) { using (var cntCst = IoC.Instance.Resolve <IBaseManager <Mandant> >()) { var contractCustom = cntCst.Get(contract.CONTRACTCUSTOMER); if (contractCustom != null) { var mandantWrapper = new MandantWrapper(); mandantWrapper = MapTo(contractCustom, mandantWrapper); contractWrapper.CONTRACTCUSTOMEROBJ = mandantWrapper; } } } wrap.CONTRACT = contractWrapper; } } } wal.Add(wrap); Log.Debug(wrap.DumpToXML()); } } return(wal.ToArray()); } catch (Exception ex) { Log.Error(ex.Message, ex); Log.Debug(ex); throw new FaultException <string>(ex.Message, new FaultReason(ex.Message)); } finally { Log.InfoFormat("End of BillWorkActGet"); } }