public List <MechanicsCostView> InsertUpdateMechanicsCostByType(Mechanics mechanics)
 {
     using (var context = new InsightsDBEntities())
     {
         var result = context.Mechanics
                      .SingleOrDefault(x => x.Type == mechanics.Type &&
                                       x.Year == mechanics.Year &&
                                       x.BuildingId == mechanics.BuildingId);
         if (result == null)
         {
             mechanics.IsActive  = true;
             mechanics.CreatedOn = DateTime.Now;
             mechanics.UpdatedOn = DateTime.Now;
             context.Mechanics.Add(mechanics);
             context.SaveChanges();
         }
         else
         {
             result.Cost      = mechanics.Cost;
             result.UpdatedOn = DateTime.Now;
             context.SaveChanges();
         }
     }
     return(GetMechanicsCostByType(mechanics));
 }
        public TotalCostView InsertUpdateMaintenanceCost(Mechanics mechanics)
        {
            using (var context = new InsightsDBEntities())
            {
                var record = context.Mechanics
                             .SingleOrDefault(x => x.Year == mechanics.Year &&
                                              x.BuildingId == mechanics.BuildingId && x.Type == mechanics.Type);
                if (record == null)
                {
                    mechanics.IsActive  = true;
                    mechanics.CreatedOn = DateTime.Now;
                    mechanics.UpdatedOn = DateTime.Now;
                    context.Mechanics.Add(mechanics);
                    context.SaveChanges();
                }
                else
                {
                    record.UpdatedOn = DateTime.Now;
                    record.Cost      = mechanics.Cost;
                    context.SaveChanges();
                }
            }
            TotalCostView tcv = new TotalCostView();

            tcv.BuildingId = mechanics.BuildingId;
            tcv.Year       = mechanics.Year;
            tcv.Type       = mechanics.Type.ToString();
            return(GetMaintenanceCost(tcv));
        }
 public TotalCostView GetMaintenanceCost(TotalCostView tcv)
 {
     using (var context = new InsightsDBEntities())
     {
         var record = context.Mechanics
                      .SingleOrDefault(x => x.BuildingId == tcv.BuildingId &&
                                       x.Type.ToString() == tcv.Type && x.Year == tcv.Year);
         if (record == null || record.Cost == null)
         {
             tcv.Cost = 0;
         }
         else
         {
             tcv.Cost = record.Cost;
         }
     }
     return(tcv);
 }
        public List <MechanicsView> GetAll(Mechanics mechanics)
        {
            List <MechanicsView> data = new List <MechanicsView>();

            using (var context = new InsightsDBEntities())
            {
                data = context.Mechanics
                       .Where(x => x.BuildingId == mechanics.BuildingId)
                       .OrderBy(x => x.Year)
                       .Select(x => new MechanicsView {
                    Failure = (x.Failure == null ? 0 : x.Failure),
                    Cost    = (x.Cost == null ? 0 : x.Cost),
                    Year    = x.Year.ToString(),
                    Type    = x.Type.ToString()
                })
                       .ToList();
            }
            return(data);
        }
        public List <MechanicsCostView> GetMechanicsCostByType(Mechanics mechanics)
        {
            List <MechanicsCostView> chartData = new List <MechanicsCostView>();

            using (var context = new InsightsDBEntities())
            {
                var results = context.Mechanics
                              .Where(x => x.Type == mechanics.Type && x.BuildingId == mechanics.BuildingId)
                              .OrderBy(x => x.Year)
                              .Select(x => new MechanicsCostView
                {
                    Year = x.Year.ToString(),
                    Cost = x.Cost == null ? 0 : x.Cost,
                    Type = x.Type.ToString()
                })
                              .ToList();
                foreach (var result in results)
                {
                    chartData.Add(result);
                }
            }
            return(chartData);
        }