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)); }
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)); }
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); } }
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); }
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)); }
public static ForecastOverviewForecast ToClient(this ForecastDto src) { var newForecast = Mapper.Map <ForecastDto, ForecastOverviewForecast>(src); return(newForecast); }