private void loadDataInventory()
        {
            LoadEditCommand = new RelayCommand <object>((p) => { return(true); }, (p) => { LoadDialogAccountEdit(); });
            ListInventory   = new ObservableCollection <StatiscalModel>();
            var ProductList = DataProvider.Ins.Entities.ProductTable;

            foreach (var item in ProductList)
            {
                var InputList  = DataProvider.Ins.Entities.InputDetailTable.Where(p => p.ID_Product == item.ID);
                var OutputList = DataProvider.Ins.Entities.OutPutDetailTable.Where(p => p.ID_Product == item.ID);

                int sumOutput = 0;
                int sumInput  = 0;

                if (InputList.Count() > 0)
                {
                    sumInput = InputList.Sum(p => p.Amount);
                }

                if (OutputList.Count() > 0)
                {
                    sumOutput = OutputList.Sum(p => p.Count);
                }

                AmountInventory += sumInput;
                AmountSale      += sumOutput;

                StatiscalModel statiscal = new StatiscalModel();
                statiscal.CountInventory = sumInput - sumOutput;
                statiscal.CountSaled     = sumOutput;
                statiscal.Product        = item;

                ListInventory.Add(statiscal);
            }
        }
        // GET api/<controller>
        /// <summary>
        /// Getting statiscal information
        /// </summary>
        /// <returns></returns>
        public async Task <HttpResponseMessage> Get()
        {
            try
            {
                StatisticalBusiness staticalBusiness = new StatisticalBusiness();
                StatiscalModel      statiscalInfo    = await staticalBusiness.StatiscalGet();

                StatiscalDTO response = new StatiscalDTO()
                {
                    Ratio        = statiscalInfo.Ratio,
                    HumanNumber  = statiscalInfo.HumanNumber,
                    MutantNumber = statiscalInfo.MutantNumber
                };

                return(Request.CreateResponse(HttpStatusCode.OK, response));
            }
            catch (Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e.ToString()));
            }
        }
예제 #3
0
        public async Task <StatiscalModel> StatiscalGet()
        {
            StatiscalModel statiscal = new StatiscalModel();

            try
            {
                AnalysisLogDAL dal = new AnalysisLogDAL();
                statiscal.MutantNumber = await dal.AnalysisLogCount(SubjectType.Mutant);

                statiscal.HumanNumber = await dal.AnalysisLogCount(SubjectType.NoMutant);

                statiscal.Ratio = statiscal.HumanNumber > 0 ? (decimal)((double)statiscal.MutantNumber / (double)statiscal.HumanNumber)
                    : statiscal.MutantNumber;
            }
            catch (Exception e)
            {
                var ex = e.ToString();
                //TODO: Writing in log
            }
            return(statiscal);
        }