예제 #1
0
        public HttpResponseMessage Create(HttpRequestMessage request, RouterViewModel routeVm)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                if (!ModelState.IsValid)
                {
                    response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState);
                }
                else
                {
                    var newRoute = new Router();
                    newRoute.UpdateRoute(routeVm);
                    newRoute.CreatedDate = DateTime.Now;

                    _routeService.Add(newRoute);
                    _routeService.Save();

                    var responseData = Mapper.Map <Router, RouterViewModel>(newRoute);
                    response = request.CreateResponse(HttpStatusCode.Created, responseData);
                }

                return response;
            }));
        }
        public Task <IDataSourceResponse <RouterViewModel> > ReadAsync(DataSourceRequest request)
        {
            var responseData = this.DbContext.Router.Include("Project").Include("SourceNodeGroup").Include("TargetNode").Select(r => r);

            if (request.ServerFiltering != null)
            {
            }

            IDataSourceResponse <RouterViewModel> response = new DataSourceResponse <RouterViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), 0);
                responseData = responseData.OrderBy(p => p.Id).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var dataCollection = responseData.ToList();

            foreach (var data in dataCollection)
            {
                response.DataCollection.Add(RouterViewModel.NewInstance(data));
            }

            return(Task.FromResult(response));
        }
        public async Task <bool> CreateAsync(RouterViewModel model, IDataSource dataSource)
        {
            var router = new Router
            {
                RouterId          = model.RouterId,
                ProjectId         = model.Project.Id.Value,
                SourceNodeGroupId = model.SourceNodeGroup.Id.Value,
                TargetNodeId      = model.TargetNode.Id.Value
            };

            await this.DbContext.Router.AddAsync(router);

            bool result = false;

            try
            {
                await this.DbContext.SaveChangesAsync();

                model.Id = router.Id;
                result   = true;
            }
            catch (Exception e)
            {
                this.logger.LogCritical(e.Message);
            }

            return(result);
        }
        public async Task <bool?> UpdateAsync(int key, RouterViewModel model, IDataSource dataSource)
        {
            var router = await this.ReadAsync(key);

            if (router == null)
            {
                return(null);
            }

            router.RouterId          = model.RouterId;
            router.ProjectId         = model.Project.Id.Value;
            router.SourceNodeGroupId = model.SourceNodeGroup.Id.Value;
            router.TargetNodeId      = model.TargetNode.Id.Value;

            bool result = false;

            try
            {
                await this.DbContext.SaveChangesAsync();

                result = true;
            }
            catch { }

            return(result);
        }
예제 #5
0
        public static void UpdateRoute(this Router route, RouterViewModel routeVm)
        {
            route.ID          = routeVm.ID;
            route.StartPoint  = routeVm.StartPoint;
            route.Description = routeVm.Description;
            route.EndPoint    = routeVm.EndPoint;
            route.TimeStart   = routeVm.TimeStart;
            route.isDel       = routeVm.isDel;


            route.CreatedDate     = routeVm.CreatedDate;
            route.CreatedBy       = routeVm.CreatedBy;
            route.UpdatedDate     = routeVm.UpdatedDate;
            route.UpdatedBy       = routeVm.UpdatedBy;
            route.MetaKeyword     = routeVm.MetaKeyword;
            route.MetaDescription = routeVm.MetaDescription;
            route.Status          = routeVm.Status;
        }
예제 #6
0
        public async Task <RouterViewModel> Get(int id)
        {
            RouterViewModel result = null;
            string          cmd    = $@"SELECT * FROM `router` r
                            LEFT JOIN `country` c ON c.id = r.country_id AND c.is_used = 1 AND c.is_deleted = 0
                            LEFT JOIN `province` p ON p.id = r.province_id AND p.is_used = 1 AND p.is_deleted = 0
                            WHERE r.is_deleted = 0 and r.id = {id}";

            if (DbConnection != null)
            {
                var rd = await DbConnection.QueryMultipleAsync(cmd, transaction : DbTransaction);

                rd.Read <Router, Country, Province, RouterViewModel>(
                    (rRs, cRs, pRs) =>
                {
                    if (result == null)
                    {
                        result = CommonHelper.Mapper <Router, RouterViewModel>(rRs);
                    }

                    if (result.Country == null)
                    {
                        result.Country = cRs;
                    }

                    if (result.Province == null)
                    {
                        result.Province = pRs;
                    }

                    return(result);
                }
                    );

                return(result);
            }
            else
            {
                using (var conn = DALHelper.GetConnection())
                {
                    var rd = await conn.QueryMultipleAsync(cmd);

                    rd.Read <Router, Country, Province, RouterViewModel>(
                        (rRs, cRs, pRs) =>
                    {
                        if (result == null)
                        {
                            result = CommonHelper.Mapper <Router, RouterViewModel>(rRs);
                        }

                        if (result.Country == null)
                        {
                            result.Country = cRs;
                        }

                        if (result.Province == null)
                        {
                            result.Province = pRs;
                        }

                        return(result);
                    }
                        );

                    return(result);
                }
            }
        }
예제 #7
0
 public UpdateCommand(RouterViewModel router)
 {
     Router = router;
 }
예제 #8
0
 public AddCommand(RouterViewModel router)
 {
     Router = router;
 }