Exemplo n.º 1
0
        public void Map(ForecastDto src, IForecastRegistrationViewModel vm)
        {
            // Update corresponding PresenceType
            var presenceReg = PresenceRegistrationByDate(src.Date, vm);

            presenceReg.SilentStatusSetById(src.ForecastType.Id);
            presenceReg.Id             = src.Id;
            presenceReg.DedicatedHours = src.DedicatedForecastTypeHours;

            // Update or create client registrations
            if (src.ForecastType.SupportsProjectHours)
            {
                foreach (var projectHoursDto in src.ForecastProjectHoursDtos)
                {
                    // If client not found create new
                    var toUpdate = vm.ProjectRegistrations.SingleOrDefault(x => x.ProjectId == projectHoursDto.Project.Id) ??
                                   vm.AddNewProjectRegistration(projectHoursDto.Project.Id, projectHoursDto.Project.Name, projectHoursDto.Project.CompanyDto.Name);

                    var dateHourReg = toUpdate.Registrations.SingleOrDefault(x => x.DateColumn.Date == src.Date);
                    if (dateHourReg != null)
                    {
                        dateHourReg.Hours = projectHoursDto.Hours;
                    }
                }
            }
        }
        private List <ForecastDto> ObterDadosForecastBiPlanilha()
        {
            var path = @"C:\Users\Duduulopes\Documents\Os Meus Ficheiros Recebidos\Forecast.xlsx";
            List <ForecastDto> forecastBiLista = new List <ForecastDto>();
            ForecastDto        forecastBI      = new ForecastDto();

            using (var pck = new OfficeOpenXml.ExcelPackage())
            {
                using (var stream = File.OpenRead(path))
                {
                    pck.Load(stream);
                }

                var ws = pck.Workbook.Worksheets.First();

                var startRow = 2;
                for (int rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++)
                {
                    var valorJaneiro   = ws.Cells[rowNum, 5, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorFevereiro = ws.Cells[rowNum, 6, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorMarco     = ws.Cells[rowNum, 7, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorAbril     = ws.Cells[rowNum, 8, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorMaio      = ws.Cells[rowNum, 9, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorJunho     = ws.Cells[rowNum, 10, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorJulho     = ws.Cells[rowNum, 11, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorAgosto    = ws.Cells[rowNum, 12, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorSetembro  = ws.Cells[rowNum, 13, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorOutubro   = ws.Cells[rowNum, 14, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();
                    var valorNovembro  = ws.Cells[rowNum, 15, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();;
                    var valorDezembro  = ws.Cells[rowNum, 16, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text.Replace("(", "-").Replace(")", "").Trim();

                    //var Valor = (String.IsNullOrEmpty(valorJunho) || valorJunho == "-") ? 0 : Decimal.Parse(valorJunho);

                    forecastBI = new ForecastDto
                    {
                        IdCelula       = Int32.Parse(ws.Cells[rowNum, 1, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text),
                        IdCliente      = Int32.Parse(ws.Cells[rowNum, 2, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text),
                        IdServico      = Int32.Parse(ws.Cells[rowNum, 3, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text),
                        NrAno          = Int32.Parse(ws.Cells[rowNum, 4, rowNum, ws.Dimension.End.Column].FirstOrDefault().Text),
                        ValorJaneiro   = String.IsNullOrEmpty(valorJaneiro) || valorJaneiro == "-" ? 0 : Decimal.Parse(valorJaneiro),
                        ValorFevereiro = String.IsNullOrEmpty(valorFevereiro) || valorFevereiro == "-" ? 0 : Decimal.Parse(valorFevereiro),
                        ValorMarco     = String.IsNullOrEmpty(valorMarco) || valorMarco == "-" ? 0 : Decimal.Parse(valorMarco),
                        ValorAbril     = String.IsNullOrEmpty(valorAbril) || valorAbril == "-" ? 0 : Decimal.Parse(valorAbril),
                        ValorMaio      = String.IsNullOrEmpty(valorMaio) || valorMaio == "-" ? 0 : Decimal.Parse(valorMaio),
                        ValorJunho     = String.IsNullOrEmpty(valorJunho) || valorJunho == "-" ? 0 : Decimal.Parse(valorJunho),
                        ValorJulho     = String.IsNullOrEmpty(valorJulho) || valorJulho == "-" ? 0 : Decimal.Parse(valorJulho),
                        ValorAgosto    = String.IsNullOrEmpty(valorAgosto) || valorAgosto == "-" ? 0 : Decimal.Parse(valorAgosto),
                        ValorSetembro  = String.IsNullOrEmpty(valorSetembro) || valorSetembro == "-" ? 0 : Decimal.Parse(valorSetembro),
                        ValorOutubro   = String.IsNullOrEmpty(valorOutubro) || valorOutubro == "-" ? 0 : Decimal.Parse(valorOutubro),
                        ValorNovembro  = String.IsNullOrEmpty(valorNovembro) || valorNovembro == "-" ? 0 : Decimal.Parse(valorNovembro),
                        ValorDezembro  = String.IsNullOrEmpty(valorDezembro) || valorDezembro == "-" ? 0 : Decimal.Parse(valorDezembro),
                    };
                    forecastBiLista.Add(forecastBI);
                }
            }

            return(forecastBiLista);
        }
        public bool?DefinirAlertaAniversarioForecast(ForecastDto forecast)
        {
            var dataInicioMes = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01);

            var ultimoRegistroForecastPorAno = DbSet.Where(x => x.IdCelula == forecast.IdCelula && x.IdCliente == forecast.IdCliente && x.IdServico == forecast.IdServico)
                                               .OrderBy(x => x.NrAno)
                                               .LastOrDefault();

            return(!ultimoRegistroForecastPorAno.DataAniversario.HasValue ? (bool?)null : ((ultimoRegistroForecastPorAno.DataAniversario >= dataInicioMes) ? true : false));
        }
Exemplo n.º 4
0
        public double MakeForecast(ForecastDto model, List <APIData> data, bool notchangestat = false)
        {
            APIService service = new APIService();

            return
                (service.MakeForecast(new SeriesDescriptionBindingModel
            {
                SeriesName = model.SeriesName,
                NeedForecast = true
            }, data, notchangestat));
        }
Exemplo n.º 5
0
        public async Task SaveAsync(ForecastDto data, CancellationToken cancellationToken)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            using (HttpClient client = new HttpClient())
            {
                UriBuilder uriBuilder = new UriBuilder(new Uri(_settings.StorageServiceAddress))
                {
                    Path = $"api/storage/save"
                };
                await client.PostAsJsonAsync(
                    uriBuilder.Uri.ToString(), data, cancellationToken);
            }
        }
Exemplo n.º 6
0
        public double MakeForecast(ForecastDto model)
        {
            APIService service = new APIService();

            return
                (service.MakeForecast(new SeriesDescriptionBindingModel
            {
                SeriesName = model.SeriesName,
                NeedForecast = true
            }, GetData(new InitSeriesDto
            {
                SeriesName = model.SeriesName,
                Url = service.GetSeriesUrl(new SeriesDescriptionBindingModel
                {
                    SeriesName = model.SeriesName
                }),
                VersionId = model.VersionId
            })));
        }
        public List <double> MakeForecast([FromBody] ForecastDto model)
        {
            APIService service = new APIService();

            var sdModel = new SeriesDescriptionBindingModel
            {
                SeriesName   = model.SeriesName,
                NeedForecast = model.NeedForecast
            };

            var res = service.InitSeries(sdModel, model.DiagnosticList.Select(x => new APIData {
                timestamp = x.DataSeriesDate, Value = x.DataSeriesValue
            }).ToList());

            if (!res)
            {
                throw new Exception("Невозможно сформировать данные по ряду");
            }

            var list = model.DiagnosticList.Select(x => new APIData {
                timestamp = x.DataSeriesDate, Value = x.DataSeriesValue
            }).ToList();

            var diff = (list[list.Count - 1].timestamp - list[list.Count - 2].timestamp).Ticks;

            var resultList = new List <double>();

            for (int i = 0; i < model.CountPoints; ++i)
            {
                var result = service.MakeForecast(sdModel, list, model.NotSaveStatistic);

                list.Add(new APIData {
                    timestamp = list[list.Count - 1].timestamp.AddTicks(diff), Value = result
                });

                resultList.Add(result);
            }

            return(resultList);
        }
Exemplo n.º 8
0
        public void MethodName_SetupDescription_ExpectedResult()
        {
            // Arrange
            var forecastType = new ForecastTypeDto
            {
                Id = 22,
            };

            var project1 = new ProjectDto {
                Id = 1, Name = "project1"
            };
            var project2 = new ProjectDto {
                Id = 2, Name = "project2"
            };

            var forecastTwin1 = new ForecastDto
            {
                Id           = 1,
                Date         = new DateTime(2013, 11, 11),
                ForecastType = forecastType,
                DedicatedForecastTypeHours = 3,
                ForecastProjectHoursDtos   = new Collection <ForecastProjectHoursDto>
                {
                    new ForecastProjectHoursDto {
                        Project = project1, Hours = 4
                    },
                    new ForecastProjectHoursDto {
                        Project = project2, Hours = 4.5m
                    }
                }
            };

            var forecastTwin2 = new ForecastDto
            {
                Id           = 2,
                Date         = new DateTime(2013, 11, 18),
                ForecastType = forecastType,
                DedicatedForecastTypeHours = 3,
                ForecastProjectHoursDtos   = new Collection <ForecastProjectHoursDto>
                {
                    new ForecastProjectHoursDto {
                        Project = project1, Hours = 4
                    },
                    new ForecastProjectHoursDto {
                        Project = project2, Hours = 4.5m
                    }
                }
            };

            var forecastBastard1 = new ForecastDto
            {
                Id           = 1,
                Date         = new DateTime(2013, 11, 4),
                ForecastType = forecastType,
                DedicatedForecastTypeHours = 2, // Difference here!
                ForecastProjectHoursDtos   = new Collection <ForecastProjectHoursDto>
                {
                    new ForecastProjectHoursDto {
                        Project = project1, Hours = 4
                    },
                    new ForecastProjectHoursDto {
                        Project = project2, Hours = 4.5m
                    }
                }
            };

            var forecastBastard2 = new ForecastDto
            {
                Id           = 2,
                Date         = new DateTime(2013, 11, 25),
                ForecastType = forecastType,
                DedicatedForecastTypeHours = 3,
                ForecastProjectHoursDtos   = new Collection <ForecastProjectHoursDto>
                {
                    new ForecastProjectHoursDto {
                        Project = project1, Hours = 4
                    },
                    new ForecastProjectHoursDto {
                        Project = project2, Hours = 1
                    }                                                                    // Difference here!
                }
            };

            var forecastBastard3 = new ForecastDto
            {
                Id           = 2,
                Date         = new DateTime(2013, 12, 12),
                ForecastType = null, // Difference here!
                DedicatedForecastTypeHours = 3,
                ForecastProjectHoursDtos   = new Collection <ForecastProjectHoursDto>
                {
                    new ForecastProjectHoursDto {
                        Project = project1, Hours = 4
                    },
                    new ForecastProjectHoursDto {
                        Project = project2, Hours = 4.5m
                    }
                }
            };

            var notMondayBastard = new ForecastDto
            {
                Id           = 2,
                Date         = new DateTime(2013, 12, 12),
                ForecastType = null, // Difference here!
                DedicatedForecastTypeHours = 3,
                ForecastProjectHoursDtos   = new Collection <ForecastProjectHoursDto>
                {
                    new ForecastProjectHoursDto {
                        Project = project1, Hours = 4
                    },
                    new ForecastProjectHoursDto {
                        Project = project2, Hours = 4.5m
                    }
                }
            };

            var sut = Fixture.Create <MostFrequentDayLayoutSelector>();

            // Act
            var result = sut.MostFrequentDayLayout(DayOfWeek.Monday, new[]
            {
                forecastBastard1,
                forecastTwin1,
                forecastTwin2,
                forecastBastard2,
                forecastBastard3,
                notMondayBastard
            });

            // Assert
            Assert.That(result.ForecastType.Id, Is.EqualTo(22));
            Assert.That(result.DedicatedForecastTypeHours, Is.EqualTo(3));
            Assert.That(result.ForecastProjectHoursDtos.ElementAt(0).Project.Name, Is.EqualTo("project1"));
            Assert.That(result.ForecastProjectHoursDtos.ElementAt(0).Hours, Is.EqualTo(4));
            Assert.That(result.ForecastProjectHoursDtos.ElementAt(1).Project.Name, Is.EqualTo("project2"));
            Assert.That(result.ForecastProjectHoursDtos.ElementAt(1).Hours, Is.EqualTo(4.5m));
        }
 public double MakeForecast(ForecastDto model)
 {
     return(dataSeries.MakeForecast(model));
 }
 public static ForecastDtoWrapper CreateFrom(ForecastDto dto)
 {
     return(Mapper.Map <ForecastDto, ForecastDtoWrapper>(dto));
 }
Exemplo n.º 11
0
        public static ForecastOverviewForecast ToClient(this ForecastDto src)
        {
            var newForecast = Mapper.Map <ForecastDto, ForecastOverviewForecast>(src);

            return(newForecast);
        }