예제 #1
0
        /// <summary>
        /// Get List of LocationViews.
        /// </summary>
        /// <param name="pageNumber">Page Number.</param>
        /// <param name="pageSize">Items count per page.</param>
        /// <param name="loadParents">Enable or Disable loading the Parents objects.</param>
        /// <param name="loadChilds">Enable or Disable loading the Childs objects.</param>
        /// <param name="searchFor">Search text as per the 'Title' field.</param>
        /// <returns>Get List of LocationViews.</returns>
        public APILocationViewResponseModels.GetLocationViewsList GetLocationViewsList(string searchFor, bool loadLocations, int pageNumber, int pageSize)
        {
            APILocationViewResponseModels.GetLocationViewsList result = new APILocationViewResponseModels.GetLocationViewsList();

            IPagedList <LocationView> locationViewsPL = uof_Repositories.repoLocationViews.GetPagedList(searchFor, pageNumber, pageSize);
            List <LocationView>       locationViews   = locationViewsPL.ToList();

            List <APILocationView> listAPILocationViews = new List <APILocationView>();

            foreach (LocationView locationView in locationViews)
            {
                APILocationView apiLocationView = TypesMapper.APILocationViewAdapter.fromLocationView(locationView, loadLocations);
                listAPILocationViews.Add(apiLocationView);
            }
            result.Views = listAPILocationViews;


            PagingInfoResponseModel pagingInfo = new PagingInfoResponseModel();

            pagingInfo.CurrentPage  = locationViewsPL.PageNumber;
            pagingInfo.ItemsPerPage = locationViewsPL.PageSize;
            pagingInfo.ItemsCount   = locationViewsPL.TotalItemCount;
            pagingInfo.PagesCount   = locationViewsPL.PageCount;
            result.PagingInfo       = pagingInfo;
            return(result);
        }
예제 #2
0
        /// <summary>
        /// Get Locations list that have warnings Only.
        /// </summary>
        /// <param name="pageNumber">Page Number.</param>
        /// <param name="pageSize">Items count per page.</param>
        /// <param name="loadParents">Enable or Disable loading the Parents objects.</param>
        /// <param name="loadChilds">Enable or Disable loading the Childs objects.</param>
        /// <returns>List of LocationViews that have one warning or more.</returns>
        public List <APILocationView> GetLocationViewsWithWarning(int pageNumber, int pageSize, bool loadParents, bool loadChilds)
        {
            List <APILocationView> apiLocationViews = new List <APILocationView>();
            List <LocationView>    locationViews    = db.LocationViews
                                                      .Where(v =>
                                                             v.LinkLocationsLocationViews.Any(ll =>
                                                                                              ll.Location.LinkThingsLocations.Any(lt =>
                                                                                                                                  lt.Thing.Endpoints.Any(
                                                                                                                                      e => e.IsNumericOnly == true &&
                                                                                                                                      (e.LastIONumericValue >= e.HighRange || e.LastIONumericValue <= e.LowRange)

                                                                                                                                      )

                                                                                                                                  )
                                                                                              )

                                                             )
                                                      .OrderBy(o => o.Title)
                                                      .Skip((pageNumber - 1) * pageSize)
                                                      .Take(pageSize).ToList();

            foreach (LocationView item in locationViews)
            {
                APILocationView apiLocationView = TypesMapper.APILocationViewAdapter.fromLocationView(item, loadChilds);
                apiLocationViews.Add(apiLocationView);
            }
            return(apiLocationViews);
        }
        public static APILocationView fromLocationView(LocationView sourceLocationView, bool loadParents = true, bool loadChilds = true)
        {
            APILocationView result = new APILocationView();

            result.ID                 = sourceLocationView.ID;
            result.IsActive           = sourceLocationView.IsActive;
            result.OwnerID            = sourceLocationView.OwnerID;
            result.LocationViewTypeID = sourceLocationView.LocationViewTypeID;
            result.Title              = sourceLocationView.Title;
            result.X = sourceLocationView.X;
            result.Y = sourceLocationView.Y;
            result.Z = sourceLocationView.Z;
            result.LocationsCount = sourceLocationView.LinkLocationsLocationViews.Count;

            #region Load Parents
            if (loadParents)
            {
                result.LocationViewType = TypesMapper.APILocationViewTypeAdapter.fromLocationViewType(sourceLocationView.LocationViewType);
            }

            #endregion

            #region Load Childs
            if (loadChilds)
            {
                List <Location> locs =
                    result.Locations =
            }
            #endregion

            return(result);
        }
예제 #4
0
        public static APILocation fromLocation(Location sourceLocation, bool loadViews, bool loadThings)
        {
            APILocation result = new APILocation();

            result.GUID       = sourceLocation.GUID;
            result.IconID     = sourceLocation.IconID;
            result.ID         = sourceLocation.ID;
            result.isActive   = sourceLocation.isActive;
            result.LatitudeX  = sourceLocation.LatitudeX;
            result.LongitudeY = sourceLocation.LongitudeY;
            result.Status     = sourceLocation.Status;
            result.Title      = sourceLocation.Title;

            #region Parents
            #region LocationViews
            if (loadViews)
            {
                List <APILocationView> apiLocationViews = new List <APILocationView>();
                foreach (LocationView locationView in sourceLocation.locationViews)
                {
                    APILocationView apiLocationView = TypesMapper.APILocationViewAdapter.fromLocationView(locationView, false);
                    apiLocationViews.Add(apiLocationView);
                }
                result.LocationViews = apiLocationViews;
            }
            #endregion


            #endregion

            #region Childs
            if (loadThings)
            {
                #region Things
                List <APIThing> apiThings = new List <APIThing>();
                foreach (Thing thing in sourceLocation.Things)
                {
                    APIThing apiThing = TypesMapper.APIThingAdapter.fromThing(thing, false, false, false, false);
                    apiThings.Add(apiThing);
                }
                result.Things = apiThings;
                #endregion
            }
            result.ThingsCount = sourceLocation.Things.Count;



            #endregion

            return(result);
        }
예제 #5
0
        /// <summary>
        /// Get List of LocationViews.
        /// </summary>
        /// <param name="pageNumber">Page Number.</param>
        /// <param name="pageSize">Items count per page.</param>
        /// <param name="loadParents">Enable or Disable loading the Parents objects.</param>
        /// <param name="loadChilds">Enable or Disable loading the Childs objects.</param>
        /// <param name="searchFor">Search text as per the 'Title' field.</param>
        /// <returns>Get List of LocationViews.</returns>
        public List <APILocationView> GetLocationViews(int pageNumber, int pageSize, bool loadParents, bool loadChilds, string searchFor)
        {
            List <APILocationView> viewsPageList = new List <APILocationView>();
            List <LocationView>    viewsList     = db.LocationViews.Include("LocationViewType")
                                                   .Where(v =>
                                                          ((searchFor == null || searchFor == "") || v.Title.Contains(searchFor))
                                                          )
                                                   .OrderBy(o => o.Title)
                                                   .Skip((pageNumber - 1) * pageSize)
                                                   .Take(pageSize)
                                                   .ToList();

            foreach (LocationView item in viewsList)
            {
                APILocationView apiLocationView = TypesMapper.APILocationViewAdapter.fromLocationView(item, loadChilds);
                viewsPageList.Add(apiLocationView);
            }

            return(viewsPageList);
        }
예제 #6
0
        public static APILocationView fromLocationView(LocationView sourceLocationView, bool loadChilds)
        {
            APILocationView result = new APILocationView();

            result.ID             = sourceLocationView.ID;
            result.IsActive       = sourceLocationView.IsActive;
            result.OwnerID        = sourceLocationView.OwnerID;
            result.Title          = sourceLocationView.Title;
            result.X              = sourceLocationView.X;
            result.Y              = sourceLocationView.Y;
            result.Z              = sourceLocationView.Z;
            result.LocationsCount = sourceLocationView.LinkLocationsLocationViews.Count;

            #region Load MasterTypes
            result.LocationViewType = TypesMapper.APILocationViewTypeAdapter.fromLocationViewType(sourceLocationView.LocationViewType);

            #endregion

            #region Load Parents

            #endregion

            #region Load Childs
            if (loadChilds)
            {
                #region Locations
                List <Location> locs = sourceLocationView.Locations;
                foreach (Location loc in locs)
                {
                    APILocation apiLocation = new APILocation();
                    apiLocation = TypesMapper.APILocationAdapter.fromLocation(loc, false, false);
                    result.Locations.Add(apiLocation);
                }

                #endregion
            }
            #endregion

            return(result);
        }