示例#1
0
 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");
            }
        }