public static ConstructionSiteCalculation ConvertToConstructionSiteCalculation(this ConstructionSiteCalculationViewModel constructionSiteCalculationViewModel) { ConstructionSiteCalculation constructionSiteCalculation = new ConstructionSiteCalculation() { Id = constructionSiteCalculationViewModel.Id, Identifier = constructionSiteCalculationViewModel.Identifier, ConstructionSiteId = constructionSiteCalculationViewModel.ConstructionSite?.Id ?? null, StatusDate = constructionSiteCalculationViewModel.StatusDate, NumOfEmployees = constructionSiteCalculationViewModel.NumOfEmployees, EmployeePrice = constructionSiteCalculationViewModel.EmployeePrice, NumOfMonths = constructionSiteCalculationViewModel.NumOfMonths, OldValue = constructionSiteCalculationViewModel.OldValue, NewValue = constructionSiteCalculationViewModel.NewValue, ValueDifference = constructionSiteCalculationViewModel.ValueDifference, PlusMinus = constructionSiteCalculationViewModel.PlusMinus, ItemStatus = constructionSiteCalculationViewModel.ItemStatus, IsPaid = constructionSiteCalculationViewModel.IsPaid, IsRefunded = constructionSiteCalculationViewModel.IsRefunded, DateCondition = constructionSiteCalculationViewModel.DateCondition, CreatedById = constructionSiteCalculationViewModel.CreatedBy?.Id ?? null, CompanyId = constructionSiteCalculationViewModel.Company?.Id ?? null, CreatedAt = constructionSiteCalculationViewModel.CreatedAt, UpdatedAt = constructionSiteCalculationViewModel.UpdatedAt }; return(constructionSiteCalculation); }
public ConstructionSiteCalculation GetLastConstructionSiteCalculation(int companyId, int constructionSiteId) { ConstructionSiteCalculation constructionSite = context.ConstructionSiteCalculations .Where(x => x.Company.Id == companyId && x.ConstructionSiteId == constructionSiteId) .OrderByDescending(x => x.Id) .FirstOrDefault(); Console.WriteLine("NOVO"); return(constructionSite); }
public ConstructionSiteCalculation Delete(Guid identifier) { ConstructionSiteCalculation dbEntry = context.ConstructionSiteCalculations .FirstOrDefault(x => x.Identifier == identifier && x.Active == true); if (dbEntry != null) { dbEntry.Active = false; dbEntry.UpdatedAt = DateTime.Now; } return(dbEntry); }
public ConstructionSiteCalculationResponse Create(ConstructionSiteCalculationViewModel constructionSiteCalculationViewModel) { ConstructionSiteCalculationResponse response = new ConstructionSiteCalculationResponse(); try { ConstructionSiteCalculation lastConstructionSiteCalculation = unitOfWork.GetConstructionSiteCalculationRepository() .GetLastConstructionSiteCalculation(constructionSiteCalculationViewModel.Company.Id, constructionSiteCalculationViewModel.ConstructionSite.Id); if (constructionSiteCalculationViewModel.PlusMinus == "+") { decimal enteredValue = constructionSiteCalculationViewModel.NumOfEmployees * constructionSiteCalculationViewModel.NumOfMonths * constructionSiteCalculationViewModel.EmployeePrice; constructionSiteCalculationViewModel.ValueDifference = (lastConstructionSiteCalculation?.ValueDifference ?? 0) - enteredValue; if (constructionSiteCalculationViewModel.ValueDifference < 0) { constructionSiteCalculationViewModel.ValueDifference = 0; } decimal valueToAdd = enteredValue - (lastConstructionSiteCalculation?.ValueDifference ?? 0); if (valueToAdd < 0) { valueToAdd = 0; } constructionSiteCalculationViewModel.NewValue = (lastConstructionSiteCalculation?.NewValue ?? 0) + valueToAdd; } else { decimal enteredValue = constructionSiteCalculationViewModel.NumOfEmployees * constructionSiteCalculationViewModel.NumOfMonths * constructionSiteCalculationViewModel.EmployeePrice; constructionSiteCalculationViewModel.ValueDifference = (lastConstructionSiteCalculation?.ValueDifference ?? 0) + enteredValue; constructionSiteCalculationViewModel.NewValue = lastConstructionSiteCalculation?.NewValue ?? 0; } constructionSiteCalculationViewModel.UpdatedAt = DateTime.Now.AddMilliseconds(1); ConstructionSiteCalculation addedConstructionSiteCalculation = unitOfWork.GetConstructionSiteCalculationRepository() .Create(constructionSiteCalculationViewModel.ConvertToConstructionSiteCalculation()); unitOfWork.Save(); response.ConstructionSiteCalculation = addedConstructionSiteCalculation.ConvertToConstructionSiteCalculationViewModel(); response.Success = true; } catch (Exception ex) { response.ConstructionSiteCalculation = new ConstructionSiteCalculationViewModel(); response.Success = false; response.Message = ex.Message; } return(response); }
public ConstructionSiteCalculation Delete(Guid identifier) { ConstructionSiteCalculation dbEntry = context.ConstructionSiteCalculations .Union(context.ChangeTracker.Entries() .Where(x => x.State == EntityState.Added && x.Entity.GetType() == typeof(ConstructionSiteCalculation)) .Select(x => x.Entity as ConstructionSiteCalculation)) .FirstOrDefault(x => x.Identifier == identifier && x.Active == true); if (dbEntry != null) { dbEntry.Active = false; dbEntry.UpdatedAt = DateTime.Now; } return(dbEntry); }
public ConstructionSiteCalculation Create(ConstructionSiteCalculation constructionSiteCalculation) { if (context.ConstructionSiteCalculations.Where(x => x.Identifier != null && x.Identifier == constructionSiteCalculation.Identifier).Count() == 0) { constructionSiteCalculation.Id = 0; constructionSiteCalculation.Active = true; constructionSiteCalculation.UpdatedAt = DateTime.Now; constructionSiteCalculation.CreatedAt = DateTime.Now; context.ConstructionSiteCalculations.Add(constructionSiteCalculation); return(constructionSiteCalculation); } else { // Load item that will be updated ConstructionSiteCalculation dbEntry = context.ConstructionSiteCalculations .FirstOrDefault(x => x.Identifier == constructionSiteCalculation.Identifier && x.Active == true); if (dbEntry != null) { dbEntry.CompanyId = constructionSiteCalculation.CompanyId ?? null; dbEntry.CreatedById = constructionSiteCalculation.CreatedById ?? null; // Set properties dbEntry.NumOfEmployees = constructionSiteCalculation.NumOfEmployees; dbEntry.EmployeePrice = constructionSiteCalculation.EmployeePrice; dbEntry.NumOfMonths = constructionSiteCalculation.NumOfMonths; dbEntry.OldValue = constructionSiteCalculation.OldValue; dbEntry.NewValue = constructionSiteCalculation.NewValue; dbEntry.ValueDifference = constructionSiteCalculation.ValueDifference; dbEntry.PlusMinus = constructionSiteCalculation.PlusMinus; dbEntry.ItemStatus = constructionSiteCalculation.ItemStatus; dbEntry.DateCondition = constructionSiteCalculation.DateCondition; // Set timestamp dbEntry.UpdatedAt = DateTime.Now; } return(dbEntry); } }
public ConstructionSiteCalculation GetLastConstructionSiteCalculation(int companyId, int constructionSiteId) { ConstructionSiteCalculation constructionSiteCalculation = new ConstructionSiteCalculation(); string queryString = "SELECT TOP 1 ConstructionSiteCalculationId, ConstructionSiteCalculationIdentifier, " + "ConstructionSiteId, ConstructionSiteIdentifier, ConstructionSiteCode, ConstructionSiteName, " + "NumOfEmployees, EmployeePrice, NumOfMonths, OldValue, NewValue, ValueDifference, PlusMinus, ItemStatus, " + "IsPaid, IsRefunded, DateCondition, " + "Active, UpdatedAt, CreatedById, CreatedByFirstName, CreatedByLastName, CompanyId, CompanyName " + "FROM vConstructionSiteCalculations " + "WHERE CompanyId = @CompanyId AND ConstructionSiteId = @ConstructionSiteId " + "ORDER BY ConstructionSiteCalculationId DESC;"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; command.Parameters.Add(new SqlParameter("@CompanyId", companyId)); command.Parameters.Add(new SqlParameter("@ConstructionSiteId", constructionSiteId)); connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { constructionSiteCalculation = new ConstructionSiteCalculation(); constructionSiteCalculation.Id = Int32.Parse(reader["ConstructionSiteCalculationId"].ToString()); constructionSiteCalculation.Identifier = Guid.Parse(reader["ConstructionSiteCalculationIdentifier"].ToString()); if (reader["ConstructionSiteId"] != DBNull.Value) { constructionSiteCalculation.ConstructionSite = new ConstructionSite(); constructionSiteCalculation.ConstructionSiteId = Int32.Parse(reader["ConstructionSiteId"].ToString()); constructionSiteCalculation.ConstructionSite.Id = Int32.Parse(reader["ConstructionSiteId"].ToString()); constructionSiteCalculation.ConstructionSite.Identifier = Guid.Parse(reader["ConstructionSiteIdentifier"].ToString()); constructionSiteCalculation.ConstructionSite.Code = reader["ConstructionSiteCode"].ToString(); constructionSiteCalculation.ConstructionSite.Name = reader["ConstructionSiteName"].ToString(); } if (reader["NumOfEmployees"] != DBNull.Value) { constructionSiteCalculation.NumOfEmployees = Int32.Parse(reader["NumOfEmployees"].ToString()); } if (reader["EmployeePrice"] != DBNull.Value) { constructionSiteCalculation.EmployeePrice = decimal.Parse(reader["EmployeePrice"].ToString()); } if (reader["NumOfMonths"] != DBNull.Value) { constructionSiteCalculation.NumOfMonths = Int32.Parse(reader["NumOfMonths"].ToString()); } if (reader["OldValue"] != DBNull.Value) { constructionSiteCalculation.OldValue = decimal.Parse(reader["OldValue"].ToString()); } if (reader["NewValue"] != DBNull.Value) { constructionSiteCalculation.NewValue = decimal.Parse(reader["NewValue"].ToString()); } if (reader["ValueDifference"] != DBNull.Value) { constructionSiteCalculation.ValueDifference = decimal.Parse(reader["ValueDifference"].ToString()); } if (reader["PlusMinus"] != DBNull.Value) { constructionSiteCalculation.PlusMinus = reader["PlusMinus"].ToString(); } if (reader["ItemStatus"] != DBNull.Value) { constructionSiteCalculation.ItemStatus = Int32.Parse(reader["ItemStatus"].ToString()); } constructionSiteCalculation.IsPaid = bool.Parse(reader["IsPaid"].ToString()); constructionSiteCalculation.IsRefunded = bool.Parse(reader["IsRefunded"].ToString()); if (reader["DateCondition"] != DBNull.Value) { constructionSiteCalculation.DateCondition = DateTime.Parse(reader["DateCondition"].ToString()); } constructionSiteCalculation.Active = bool.Parse(reader["Active"].ToString()); constructionSiteCalculation.UpdatedAt = DateTime.Parse(reader["UpdatedAt"].ToString()); if (reader["CreatedById"] != DBNull.Value) { constructionSiteCalculation.CreatedBy = new User(); constructionSiteCalculation.CreatedById = Int32.Parse(reader["CreatedById"].ToString()); constructionSiteCalculation.CreatedBy.Id = Int32.Parse(reader["CreatedById"].ToString()); constructionSiteCalculation.CreatedBy.FirstName = reader["CreatedByFirstName"]?.ToString(); constructionSiteCalculation.CreatedBy.LastName = reader["CreatedByLastName"]?.ToString(); } if (reader["CompanyId"] != DBNull.Value) { constructionSiteCalculation.Company = new Company(); constructionSiteCalculation.CompanyId = Int32.Parse(reader["CompanyId"].ToString()); constructionSiteCalculation.Company.Id = Int32.Parse(reader["CompanyId"].ToString()); constructionSiteCalculation.Company.Name = reader["CompanyName"].ToString(); } } } } Console.WriteLine("NOVO"); return(constructionSiteCalculation); //ConstructionSiteCalculation constructionSite = context.ConstructionSiteCalculations // .Where(x => x.Company.Id == companyId && x.ConstructionSiteId == constructionSiteId) // .OrderByDescending(x => x.Id) // .FirstOrDefault(); //Console.WriteLine("NOVO"); //return constructionSite; }
public List <ConstructionSiteCalculation> GetConstructionSiteCalculationsNewerThen(int companyId, DateTime lastUpdateTime) { List <ConstructionSiteCalculation> ConstructionSiteCalculations = new List <ConstructionSiteCalculation>(); string queryString = "SELECT ConstructionSiteCalculationId, ConstructionSiteCalculationIdentifier, " + "ConstructionSiteId, ConstructionSiteIdentifier, ConstructionSiteCode, ConstructionSiteName, " + "StatusDate, NumOfEmployees, EmployeePrice, NumOfMonths, OldValue, NewValue, ValueDifference, PlusMinus, ItemStatus, " + "IsPaid, IsRefunded, DateCondition, " + "Active, UpdatedAt, CreatedById, CreatedByFirstName, CreatedByLastName, CompanyId, CompanyName " + "FROM vConstructionSiteCalculations " + "WHERE CompanyId = @CompanyId " + "AND CONVERT(DATETIME, CONVERT(VARCHAR(20), UpdatedAt, 120)) > CONVERT(DATETIME, CONVERT(VARCHAR(20), @LastUpdateTime, 120));"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; command.Parameters.Add(new SqlParameter("@CompanyId", companyId)); command.Parameters.Add(new SqlParameter("@LastUpdateTime", lastUpdateTime)); connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { ConstructionSiteCalculation constructionSiteCalculation; while (reader.Read()) { constructionSiteCalculation = new ConstructionSiteCalculation(); constructionSiteCalculation.Id = Int32.Parse(reader["ConstructionSiteCalculationId"].ToString()); constructionSiteCalculation.Identifier = Guid.Parse(reader["ConstructionSiteCalculationIdentifier"].ToString()); if (reader["ConstructionSiteId"] != DBNull.Value) { constructionSiteCalculation.ConstructionSite = new ConstructionSite(); constructionSiteCalculation.ConstructionSiteId = Int32.Parse(reader["ConstructionSiteId"].ToString()); constructionSiteCalculation.ConstructionSite.Id = Int32.Parse(reader["ConstructionSiteId"].ToString()); constructionSiteCalculation.ConstructionSite.Identifier = Guid.Parse(reader["ConstructionSiteIdentifier"].ToString()); constructionSiteCalculation.ConstructionSite.Code = reader["ConstructionSiteCode"].ToString(); constructionSiteCalculation.ConstructionSite.Name = reader["ConstructionSiteName"].ToString(); } if (reader["StatusDate"] != DBNull.Value) { constructionSiteCalculation.StatusDate = DateTime.Parse(reader["StatusDate"].ToString()); } if (reader["NumOfEmployees"] != DBNull.Value) { constructionSiteCalculation.NumOfEmployees = Int32.Parse(reader["NumOfEmployees"].ToString()); } if (reader["EmployeePrice"] != DBNull.Value) { constructionSiteCalculation.EmployeePrice = decimal.Parse(reader["EmployeePrice"].ToString()); } if (reader["NumOfMonths"] != DBNull.Value) { constructionSiteCalculation.NumOfMonths = Int32.Parse(reader["NumOfMonths"].ToString()); } if (reader["OldValue"] != DBNull.Value) { constructionSiteCalculation.OldValue = decimal.Parse(reader["OldValue"].ToString()); } if (reader["NewValue"] != DBNull.Value) { constructionSiteCalculation.NewValue = decimal.Parse(reader["NewValue"].ToString()); } if (reader["ValueDifference"] != DBNull.Value) { constructionSiteCalculation.ValueDifference = decimal.Parse(reader["ValueDifference"].ToString()); } if (reader["PlusMinus"] != DBNull.Value) { constructionSiteCalculation.PlusMinus = reader["PlusMinus"].ToString(); } if (reader["ItemStatus"] != DBNull.Value) { constructionSiteCalculation.ItemStatus = Int32.Parse(reader["ItemStatus"].ToString()); } constructionSiteCalculation.IsPaid = bool.Parse(reader["IsPaid"].ToString()); constructionSiteCalculation.IsRefunded = bool.Parse(reader["IsRefunded"].ToString()); if (reader["DateCondition"] != DBNull.Value) { constructionSiteCalculation.DateCondition = DateTime.Parse(reader["DateCondition"].ToString()); } constructionSiteCalculation.Active = bool.Parse(reader["Active"].ToString()); constructionSiteCalculation.UpdatedAt = DateTime.Parse(reader["UpdatedAt"].ToString()); if (reader["CreatedById"] != DBNull.Value) { constructionSiteCalculation.CreatedBy = new User(); constructionSiteCalculation.CreatedById = Int32.Parse(reader["CreatedById"].ToString()); constructionSiteCalculation.CreatedBy.Id = Int32.Parse(reader["CreatedById"].ToString()); constructionSiteCalculation.CreatedBy.FirstName = reader["CreatedByFirstName"]?.ToString(); constructionSiteCalculation.CreatedBy.LastName = reader["CreatedByLastName"]?.ToString(); } if (reader["CompanyId"] != DBNull.Value) { constructionSiteCalculation.Company = new Company(); constructionSiteCalculation.CompanyId = Int32.Parse(reader["CompanyId"].ToString()); constructionSiteCalculation.Company.Id = Int32.Parse(reader["CompanyId"].ToString()); constructionSiteCalculation.Company.Name = reader["CompanyName"].ToString(); } ConstructionSiteCalculations.Add(constructionSiteCalculation); } } } return(ConstructionSiteCalculations); //List<ConstructionSiteCalculation> ConstructionSites = context.ConstructionSiteCalculations // .Include(x => x.ConstructionSite) // .Include(x => x.Company) // .Include(x => x.CreatedBy) // .Where(x => x.Company.Id == companyId && x.UpdatedAt > lastUpdateTime) // .AsNoTracking() // .ToList(); //return ConstructionSites; }
public static ConstructionSiteCalculationViewModel ConvertToConstructionSiteCalculationViewModelLite(this ConstructionSiteCalculation constructionSiteCalculation) { ConstructionSiteCalculationViewModel constructionSiteCalculationViewModel = new ConstructionSiteCalculationViewModel() { Id = constructionSiteCalculation.Id, Identifier = constructionSiteCalculation.Identifier, StatusDate = constructionSiteCalculation.StatusDate, NumOfEmployees = constructionSiteCalculation.NumOfEmployees, EmployeePrice = constructionSiteCalculation.EmployeePrice, NumOfMonths = constructionSiteCalculation.NumOfMonths, OldValue = constructionSiteCalculation.OldValue, NewValue = constructionSiteCalculation.NewValue, ValueDifference = constructionSiteCalculation.ValueDifference, PlusMinus = constructionSiteCalculation.PlusMinus, ItemStatus = constructionSiteCalculation.ItemStatus, IsPaid = constructionSiteCalculation.IsPaid, IsRefunded = constructionSiteCalculation.IsRefunded, DateCondition = constructionSiteCalculation.DateCondition, IsActive = constructionSiteCalculation.Active, UpdatedAt = constructionSiteCalculation.UpdatedAt, CreatedAt = constructionSiteCalculation.CreatedAt }; return(constructionSiteCalculationViewModel); }