public Task UpdateEndDate(MaintenanceCost maintenanceCost) { var taskResult = Task.Run(() => { using (var context = new DbContext()) { var existingRecord = context .MaintCostList .FirstOrDefault(p => p.Id == maintenanceCost.Id); if (existingRecord == null) { throw new Exception("Maintenance Cost detail not found"); } if (existingRecord.ToDate.HasValue == true) { throw new Exception("End Date already set, cannot update date"); } existingRecord.ToDate = maintenanceCost.ToDate; context.SaveChanges(); } }); return(taskResult); }
public Task <MaintenanceCost> Create(MaintenanceCost maintenanceCost) { var taskResult = Task.Run(() => { using (var context = new DbContext()) { //Data Validation //---------------------------------------------------------------------------------// //duplication check if (context.MaintCostList.Any(m => m.DefinitionId == maintenanceCost.Definition.Id && m.SocietyId == maintenanceCost.Society.Id && (DbFunctions.TruncateTime(maintenanceCost.FromDate.Value) < DbFunctions.TruncateTime(m.FromDate.Value) || !m.ToDate.HasValue || DbFunctions.TruncateTime(maintenanceCost.FromDate.Value) < DbFunctions.TruncateTime(m.ToDate.Value)))) { throw new Exception("Duplicate maintenance cost found"); } var society = context.Societies.FirstOrDefault(p => p.Id == maintenanceCost.Society.Id); if (maintenanceCost.FromDate < society.DateOfIncorporation) { throw new Exception("Start date cannot be before date of incorporation of the society"); } if (maintenanceCost.ToDate < maintenanceCost.FromDate) { throw new Exception("End date cannot be before start date"); } //---------------------------------------------------------------------------------// //Data Process //---------------------------------------------------------------------------------// if (maintenanceCost.Definition != null) { maintenanceCost.DefinitionId = maintenanceCost.Definition.Id; maintenanceCost.Definition = null; } if (maintenanceCost.Society != null) { maintenanceCost.SocietyId = maintenanceCost.Society.Id; maintenanceCost.Society = null; } maintenanceCost.Date = DateTime.Now; //---------------------------------------------------------------------------------// //Data Insertion //---------------------------------------------------------------------------------// context.MaintCostList.Add(maintenanceCost); context.SaveChanges(); //---------------------------------------------------------------------------------// return(maintenanceCost); } }); return(taskResult); }
public Task Update(MaintenanceCost maintenanceCost) { var taskResult = Task.Run(() => { using (var context = new DbContext()) { var existingRecord = context .MaintCostList .FirstOrDefault(p => p.Id == maintenanceCost.Id); if (existingRecord == null) { throw new Exception("Maintenance Cost detail not found"); } if (existingRecord.IsApproved) { throw new Exception("Maintenance Cost approved. Cannot update"); } var society = context.Societies.FirstOrDefault(p => p.Id == maintenanceCost.Society.Id); if (maintenanceCost.FromDate < society.DateOfIncorporation) { throw new Exception("Start date cannot be before date of incorporation of the society"); } if (maintenanceCost.ToDate < maintenanceCost.FromDate) { throw new Exception("End date cannot be before start date"); } existingRecord.Amount = maintenanceCost.Amount; existingRecord.Date = maintenanceCost.Date; existingRecord.FromDate = maintenanceCost.FromDate; existingRecord.ToDate = maintenanceCost.ToDate; existingRecord.AllFlats = maintenanceCost.AllFlats; existingRecord.PerSqrArea = maintenanceCost.PerSqrArea; existingRecord.IsRejected = false; context.SaveChanges(); } }); return(taskResult); }
public Task UpdateEndDate(MaintenanceCost maintenanceCost) { return(_maintenanceCostRepository.UpdateEndDate(maintenanceCost)); }
public Task <MaintenanceCost> Create(MaintenanceCost maintenanceCost) { return(_maintenanceCostRepository.Create(maintenanceCost)); }