public GetBySiteResponse GetRangeBySiteId([FromBody] GetRangeBySiteIdRequest request)
        {
            if (request == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            DateTime begin      = request.Begin ?? DateTime.MinValue;
            DateTime end        = request.End ?? DateTime.MaxValue;
            int      siteId     = request.SiteId;
            string   sensorType = request.SensorType;
            int      interval   = request.Interval ?? 0;

            Site site = SitesRepository.GetById(siteId);

            if (site == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var result = GraphDataService.GetRangeBySiteId(begin, end, interval, sensorType, siteId).ToList();

            foreach (var graph in result)
            {
                graph.Data = graph.Data.ToList();
            }

            var dateTimes = from graph in result
                            from data in graph.Data
                            select data.Timestamp;

            IEnumerable <WeatherResult> weatherResult = null;

            if (dateTimes.Count() != 0)
            {
                DateTime weatherBegin = dateTimes.Min();
                DateTime weatherEnd   = dateTimes.Max();

                var data = from w in WeathersRepository.GetRange(weatherBegin, weatherEnd)
                           orderby w.Timestamp ascending
                           select w;

                weatherResult = WeathersRepository.FilterColumn(data.GroupBy(interval).ToList(), "Precipitation");
            }

            return(new GetBySiteResponse
            {
                Site = new SiteValue
                {
                    Id = site.Id,
                    Latitude = site.Latitude,
                    Longitude = site.Longitude,
                    Name = site.Name,
                    Number = site.Number
                },
                Result = result,
                Weather = weatherResult
            });
        }
        public async Task GraphDataServicePassesTest()
        {
            var filterMock = new QueryFilter()
            {
                FromDate   = DateTime.Now.AddDays(-1),
                ToDate     = DateTime.Now,
                PageNumber = 1,
                PageSize   = 25
            };

            var service = new GraphDataService(
                _query.Object,
                _predictionsService.Object,
                _logger.Object
                );

            _query.Setup(q => q.GetGraphData(
                             It.IsAny <QueryFilter>()
                             )).ReturnsAsync((
                                                 new List <PositionsCountDto>()
            {
                new PositionsCountDto()
                {
                    PositionsCount = new Random().Next(1, 100),
                    RequestDate = $"{filterMock.FromDate:dd-MM-yyyy}"
                },
                new PositionsCountDto()
                {
                    PositionsCount = new Random().Next(1, 100),
                    RequestDate = $"{filterMock.ToDate:dd-MM-yyyy}"
                },
            },
                                                 new List <ViewsCountDto>()
            {
                new ViewsCountDto()
                {
                    RequestDate = $"{filterMock.FromDate:dd-MM-yyyy}",
                    ViewsCount = new Random().Next(1, 100)
                },
                new ViewsCountDto()
                {
                    RequestDate = $"{filterMock.ToDate:dd-MM-yyyy}",
                    ViewsCount = new Random().Next(1, 100)
                }
            })
                                             );
            _predictionsService.Setup(p => p.GetPrediction(It.IsAny <int>(), It.IsAny <DateTime>())).Returns(It.IsAny <int>());

            await service.GetGraohData(filterMock, $"{Guid.NewGuid()}");

            _query.Verify(q => q.GetGraphData(It.IsAny <QueryFilter>()), Times.Once);
            _predictionsService.Verify(prop => prop.GetPrediction(It.IsAny <int>(), It.IsAny <DateTime>()), Times.AtLeastOnce);

            await Task.CompletedTask;
        }
        void Key_ChangedCommited(object sender, EventArgs e)
        {
            var data = (DataVertex)sender;

            GraphDataService.UpdateVertex(data, (r, v, ex) =>
            {
                if (ex != null)
                {
                    ShowAlertMessage(ex.ToString());
                }
            });
            //throw new NotImplementedException();
        }
        public GetByDepthResponse GetRangeByDepth([FromBody] GetRangeByDepthRequest request)
        {
            if (request == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            DateTime begin      = request.Begin ?? DateTime.MinValue;
            DateTime end        = request.End ?? DateTime.MaxValue;
            float    depth      = request.Depth;
            string   sensorType = request.SensorType;
            int      interval   = request.Interval ?? 0;

            var result = GraphDataService.GetRangeByDepth(begin, end, interval, sensorType, depth).ToList();

            foreach (var graph in result)
            {
                graph.Data = graph.Data.ToList();
            }

            var dateTimes = from graph in result
                            from data in graph.Data
                            select data.Timestamp;

            IEnumerable <WeatherResult> weatherResult = null;

            if (dateTimes.Count() != 0)
            {
                DateTime weatherBegin = dateTimes.Min();
                DateTime weatherEnd   = dateTimes.Max();

                var data = from w in WeathersRepository.GetRange(weatherBegin, weatherEnd)
                           orderby w.Timestamp ascending
                           select w;

                weatherResult = WeathersRepository.FilterColumn(data.GroupBy(interval).ToList(), "Precipitation");
            }

            return(new GetByDepthResponse
            {
                Depth = depth,
                Result = result,
                Weather = weatherResult
            });
        }
Example #5
0
        private void ConfigureServices(IServiceCollection serviceCollection)
        {
            if (IsInDesignMode)
            {
                serviceCollection.AddSingleton <IAuthService, FakeAuthService>();
                serviceCollection.AddSingleton <IGraphDataService, FakeGraphDataService>();
            }
            else
            {
                var authService = new AuthService(SecretConfig.ClientId);
                serviceCollection.AddSingleton <IAuthService>(authService);

                var graphDataService = new GraphDataService(authService.GetServiceClient());
                serviceCollection.AddSingleton <IGraphDataService>(graphDataService);
            }

            serviceCollection.AddSingleton <MainViewModel>();
        }
Example #6
0
        private static IServiceProvider GetServices()
        {
            IServiceCollection serviceCollection = new ServiceCollection();

            if (IsInDesignMode)
            {
                serviceCollection.AddSingleton <IAuthService, FakeAuthService>();
                serviceCollection.AddSingleton <IGraphDataService, FakeGraphDataService>();
            }
            else
            {
                var authService = new AuthService(SecretConfig.ClientId);
                serviceCollection.AddSingleton <IAuthService>(authService);

                var graphDataService = new GraphDataService(authService.GetServiceClient());
                serviceCollection.AddSingleton <IGraphDataService>(graphDataService);
            }

            serviceCollection.AddSingleton <MainViewModel>();

            return(serviceCollection.BuildServiceProvider());
        }
        private void tbnSaveChanges_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                GraphDataService.UpdateEdges(Area.Graph.Edges, (result, error) =>
                {
                    if (!result && error != null)
                    {
                        ShowAlertMessage(error.Message);
                    }
                });

                GraphDataService.UpdateVertexes(Area.Graph.Vertices, (result, error) =>
                {
                    if (!result && error != null)
                    {
                        ShowAlertMessage(error.Message);
                    }
                });

                _selectedVertices.Clear();

                //clear dirty flag
                _viewmodel.Commit();

                tbtnCanEdit.IsChecked = false;

                UpdateIsInEditMode(Area.VertexList, tbtnCanEdit.IsChecked.Value);

                UpdateHighlightBehaviour(true);
                //GetEdges();
            }
            catch (Exception ex)
            {
                ShowAlertMessage(ex.Message);;
            }
        }
 void OnEdgeLoaded(IEnumerable <DataEdge> edges)
 {
     Edges = edges;
     GraphDataService.GetVertexes(OnVertexesLoaded, OnError);
 }
 void GetEdges()
 {
     GraphDataService.GetEdges(OnEdgeLoaded, OnError);
 }