public ActionResult DetailsEdit(DetailsEditViewModel viewmodel, int Id)
        {
            if ((User.IsInRole("Admin") || User.IsInRole("Repairguy")))
            {
                if (viewmodel != null)
                {
                    if (ModelState.IsValid)
                    {
                        using (var context = new ApplicationDbContext())
                        {
                            var model = db.GetOrderById(Id);

                            model.parts       = viewmodel.order.parts;
                            model.repairGuy   = viewmodel.order.repairGuy;
                            model.customer    = viewmodel.order.customer;
                            model.Description = viewmodel.order.Description;
                            model.status      = viewmodel.order.status;
                            model.StartDate   = viewmodel.order.StartDate;
                            model.EndDate     = viewmodel.order.EndDate;

                            context.repairOrders.AddOrUpdate(model);
                            context.SaveChanges();

                            return(RedirectToAction("Index"));
                        }
                    }
                }
            }
            return(View());
        }
 public ActionResult DetailsEdit(int Id)
 {
     if ((User.IsInRole("Admin") || User.IsInRole("Repairguy")))
     {
         DetailsEditViewModel editview = new DetailsEditViewModel
         {
             order = db.GetOrderById(Id)
         };
         return(View(editview));
     }
     return(View());
 }
 public ActionResult CreateOrder(DetailsEditViewModel CreateView)
 {
     using (var context = new ApplicationDbContext())
     {
         if (ModelState.IsValid)
         {
             var order = new RepairOrder();
             order.customer    = CreateView.order.customer;
             order.repairGuy   = CreateView.order.repairGuy;
             order.status      = Status.Awaiting;
             order.StartDate   = DateTime.Now;
             order.EndDate     = order.StartDate.AddDays(7);
             order.parts       = CreateView.order.parts;
             order.Description = CreateView.order.Description;
             context.repairOrders.Add(order);
             context.SaveChanges();
             return(RedirectToAction("Index"));
         }
     }
     return(View());
 }
 public ActionResult DetailsEdit(DetailsEditViewModel editview)
 {
     if ((User.IsInRole("Admin") || User.IsInRole("Repairguy")))
     {
         using (var context = new ApplicationDbContext())
         {
             if (ModelState.IsValid)
             {
                 var order = db.GetOrderById(editview.order.Id);
                 order.customer    = editview.order.customer;
                 order.repairGuy   = editview.order.repairGuy;
                 order.StartDate   = editview.order.StartDate;
                 order.status      = editview.order.status;
                 order.EndDate     = editview.order.EndDate;
                 order.Description = editview.order.Description;
                 context.repairOrders.AddOrUpdate(order);
                 context.SaveChanges();
                 return(RedirectToAction("Index"));
             }
             return(View(editview));
         }
     }
     return(RedirectToAction("Details"));
 }
        public ActionResult CreateOrder(DetailsEditViewModel viewmodel)
        {
            using (var context = new ApplicationDbContext())
            {
                PartsNeeded needed      = new PartsNeeded();
                var         currentuser = User.Identity.Name;


                // Here is where a customer is made if an user doesnt have a customer linked to it already//
                if (context.customers.Where(c => c.user.UserName == currentuser) == null)
                {
                    Customer AdminCustomer = new Customer();
                    AdminCustomer.user = context.Users.FirstOrDefault(c => c.UserName == currentuser);
                    context.customers.AddOrUpdate(AdminCustomer);
                }



                if (User.IsInRole("Customer"))
                {
                    // here the needed part with amount is set //
                    needed.PartNeeded.Id             = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id).Id;
                    needed.PartNeeded.Name           = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id).Name;
                    needed.PartNeeded.Brand          = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id).Brand;
                    needed.PartNeeded.Type           = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id).Type;
                    needed.PartNeeded.Price          = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id).Price;
                    needed.AmountNeeded              = viewmodel.order.parts.AmountNeeded;
                    needed.inStorage.AmountInStorage = context.amountParts.FirstOrDefault(p => p.Part.Id == needed.PartNeeded.Id).AmountInStorage;
                    needed.inStorage.Part            = needed.PartNeeded;
                    //added part and amount that is needed //
                    context.partsNeeded.AddOrUpdate(needed);

                    // filling in the rest //
                    viewmodel.order.parts       = needed;
                    viewmodel.order.customer    = db.GetCustomerByUser(currentuser);
                    viewmodel.order.EndDate     = viewmodel.order.StartDate.AddDays(7);
                    viewmodel.order.status      = Status.Awaiting;
                    viewmodel.order.StartDate   = viewmodel.order.StartDate;
                    viewmodel.order.EndDate     = viewmodel.order.StartDate.AddDays(7);
                    viewmodel.order.Description = viewmodel.order.Description;

                    // sh*ts not working //
                    if (ModelState.IsValid)
                    {
                        context.repairOrders.AddOrUpdate(viewmodel.order);
                        context.SaveChanges();

                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    needed.PartNeeded       = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id);
                    needed.PartNeeded.Name  = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id).Name;
                    needed.PartNeeded.Brand = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id).Brand;
                    needed.PartNeeded.Type  = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id).Type;
                    needed.PartNeeded.Price = db.GetPartInfoByAmountId(viewmodel.order.parts.PartNeeded.Id).Price;

                    needed.AmountNeeded = viewmodel.order.parts.AmountNeeded;

                    needed.inStorage = context.amountParts.FirstOrDefault(p => p.Part.Id == needed.PartNeeded.Id);
                    needed.inStorage.AmountInStorage = context.amountParts.FirstOrDefault(p => p.Part.Id == needed.PartNeeded.Id).AmountInStorage;
                    needed.inStorage.Part            = needed.PartNeeded;

                    viewmodel.order.parts = needed;

                    viewmodel.order.status    = Status.Awaiting;
                    viewmodel.order.StartDate = viewmodel.order.StartDate;
                    viewmodel.order.EndDate   = viewmodel.order.StartDate.AddDays(7);

                    viewmodel.order.Description = viewmodel.order.Description;
                    viewmodel.order.customer    = viewmodel.order.customer;

                    // Again, sh*ts not working //
                    if (ModelState.IsValid)
                    {
                        context.repairOrders.AddOrUpdate(viewmodel.order);
                        context.SaveChanges();
                    }
                    return(RedirectToAction("Index"));
                }

                return(View());
            }
        }