public ActionResult Register(RegisterParkingViewModel model)
        {
            if (ModelState.IsValid)
            {
                Parking parking = BusinessManager.Instance.Parkings.Find(model.CNPJ);

                if (parking == null)
                {
                    Client dailyClient = new Client();

                    parking = model.ToParking();
                    BusinessManager.Instance.Parkings.Add(parking);
                    dailyClient.Email = "daily@" + parking.Name.Replace(" ", "_").ToLower() + ".com";
                    BusinessManager.Instance.Clients.Add(dailyClient);

                    BusinessManager.Instance.Clients.AttachToParking(dailyClient, parking.CNPJ);

                    return(RedirectToAction("Index", "GlobalAdmin"));
                }

                ModelState["CNPJ"].Errors.Add("Já existe um estacionamento com este CNPJ");
            }

            return(View(model));
        }
 private static void SetAddress(Address address, RegisterParkingViewModel model)
 {
     model.Street     = address.Street;
     model.Square     = address.Square;
     model.PostalCode = address.PostalCode;
     model.State      = address.State;
     model.City       = address.City;
 }
 private static Address GetAddress(RegisterParkingViewModel registerModel)
 {
     return(new Address
     {
         City = registerModel.City,
         PostalCode = registerModel.PostalCode,
         Square = registerModel.Square,
         State = registerModel.State,
         Street = registerModel.Street
     });
 }
 public static Parking ToParking(this RegisterParkingViewModel model)
 {
     return(new Parking
     {
         CNPJ = model.CNPJ,
         Name = model.Name,
         PhoneNumber = model.PhoneNumber,
         Address = GetAddress(model),
         StreetNumber = int.Parse(model.Number),
         LocalManager = new LocalManager {
             CPF = model.LocalAdmin
         }
     });
 }
        public static RegisterParkingViewModel ToRegisterParkingViewModel(this Parking parking)
        {
            var model = new RegisterParkingViewModel
            {
                CNPJ        = parking.CNPJ,
                LocalAdmin  = parking.LocalManager.CPF,
                Name        = parking.Name,
                Number      = parking.StreetNumber.ToString(),
                PhoneNumber = parking.PhoneNumber
            };

            SetAddress(parking.Address, model);

            return(model);
        }
        public ActionResult SaveChanges(RegisterParkingViewModel model)
        {
            if (ModelState.IsValid)
            {
                Parking parking = BusinessManager.Instance.Parkings.Find(model.CNPJ);

                if (parking != null)
                {
                    parking = model.ToParking();
                    BusinessManager.Instance.Parkings.Update(parking);

                    return(RedirectToAction("Index", "GlobalAdmin"));
                }
            }

            return(View(model));
        }