예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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));
 }