private async Task AddPeriodLine(IOutcomeReportServiceProvider provider, NewPeriodLinesViewModel item)
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;
            using (var periodService = provider.GetService())
            {
                DateTime?date = item.Date;
                if (ReferenceEquals(date, null) || date == DateTime.MinValue || date == DateTime.MaxValue)
                {
                    date = null;
                }

                var request = new AddLineRequest(PeriodViewModelId, item.Amount, item.Category.Id, item.Description, date);

                var response = await periodService.AddLineAsync(request);

                if (ReferenceEquals(response.Exception, null) == false)
                {
                    Debug.WriteLine(response.Exception);
                }
            }

            IsBusy = false;

            await LoadData(provider);
        }
Пример #2
0
        public string AddLine([FromBody] AddLineRequest request)
        {
            CommonBaseInfo res = new CommonBaseInfo();

            if (request.empId <= 0)
            {
                res.StateCode = 500;
                res.ResultMsg = "empId必须大于0";
                return(JsonConvert.SerializeObject(res));
            }
            _repository.DeleteLineByEmpId(request.empId);
            Line workLine = new Line()
            {
                name        = "上班路线",
                empId       = request.empId,
                origin      = request.origin,
                destination = request.destination,
                publishTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),
                takeTime    = request.workTime,
                startPoint  = request.startPoint,
                endPoint    = request.endPoint
            };
            Line overLine = new Line()
            {
                name        = "下班路线",
                empId       = request.empId,
                origin      = request.destination,
                destination = request.origin,
                publishTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),
                takeTime    = request.overTime,
                startPoint  = request.endPoint,
                endPoint    = request.startPoint
            };

            _repository.Add(workLine);
            _repository.Add(overLine);
            res.StateCode = 200;
            res.ResultMsg = "success";
            return(JsonConvert.SerializeObject(res));
        }
        public async Task <AddLineResponse> AddLineAsync(AddLineRequest request)
        {
            return(await Task.Run(() =>
            {
                var response = new AddLineResponse();

                try
                {
                    var period = unitOfWork.PeriodRepository.GetPeriod(request.PeriodId);

                    period.AddLine(request.Amount, request.Category, request.Additional, request.Date);

                    unitOfWork.PeriodRepository.Update(period);

                    unitOfWork.Commit();
                }
                catch (Exception ex)
                {
                    response.Exception = ex;
                }

                return response;
            }));
        }