예제 #1
0
        public async Task <IHttpActionResult> PostSalesReports(SalesReportsVm vm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = Task.Factory.StartNew(() =>
            {
                IUnitOfWork uow = new UnitOfWorkImp(new IRepositoryConnection[] { SalesReportsRepository });
                var bo          = (BOSalesReports)vm.BOSalesReports(SalesReportsRepository);
                uow.Create(bo);

                string err;
                if (!uow.Commit(out err))
                {
                    var resp = new HttpResponseMessage(HttpStatusCode.BadRequest)
                    {
                        Content = new StringContent(err)
                    };
                    throw new HttpResponseException(resp);
                }
                vm = new SalesReportsVm(bo);
                return(true);
            });
            await result;

            return(CreatedAtRoute("DefaultApi", new { id = vm.GroupBy }, vm));
        }
예제 #2
0
        public async Task <IHttpActionResult> PutSalesReports(string id, SalesReportsVm vm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != vm.GroupBy)
            {
                return(BadRequest());
            }

            var result = Task.Factory.StartNew(() => {
                IUnitOfWork uow = new UnitOfWorkImp(new IRepositoryConnection[] { SalesReportsRepository });
                var bo          = (BOSalesReports)vm.BOSalesReports(SalesReportsRepository);
                uow.Update(bo);

                string err;
                if (!uow.Commit(out err))
                {
                    var resp = new HttpResponseMessage(HttpStatusCode.BadRequest)
                    {
                        Content = new StringContent(err)
                    };
                    throw new HttpResponseException(resp);
                }
                return(true);
            });
            await result;

            if (!result.Result)
            {
                return(NotFound());
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }