Beispiel #1
0
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            var valueProvider = bindingContext.ValueProvider;
            var model = new UavEditModel();

            try
            {
                model.Uav = new UavDTO()
                {
                    Type = new UavTypeDTO() { Id = int.Parse((string)valueProvider.GetValue("UavType").ConvertTo(typeof(string))) },
                    Id = (int)valueProvider.GetValue("Uav.Id").ConvertTo(typeof(int)),
                    FlightRadius = (int)valueProvider.GetValue("Uav.FlightRadius").ConvertTo(typeof(int)),
                    Endurance = (string)valueProvider.GetValue("Uav.Endurance").ConvertTo(typeof(string)),
                    MaxSpeed = (int)valueProvider.GetValue("Uav.MaxSpeed").ConvertTo(typeof(int)),
                    MinSpeed = (int)valueProvider.GetValue("Uav.MinSpeed").ConvertTo(typeof(int)),
                    TakeoffWeight = (int)valueProvider.GetValue("Uav.TakeoffWeight").ConvertTo(typeof(int)),
                    Length = (int)valueProvider.GetValue("Uav.Length").ConvertTo(typeof(int)),
                    TakeoffProcedure = (string)valueProvider.GetValue("Uav.TakeoffProcedure").ConvertTo(typeof(string)),
                    LandingProcedure = (string)valueProvider.GetValue("Uav.LandingProcedure").ConvertTo(typeof(string)),
                    ServiceCeiling = (int)valueProvider.GetValue("Uav.ServiceCeiling").ConvertTo(typeof(int)),
                    Wingspan = (int)valueProvider.GetValue("Uav.Wingspan").ConvertTo(typeof(int)),
                    PowerUnit = (string)valueProvider.GetValue("Uav.PowerUnit").ConvertTo(typeof(string))
                };

                model.Payloads = GetPayloads((string[])valueProvider.GetValue("Payloads").ConvertTo(typeof(string[])), new List<PayloadDTO>());
                model.GcuTypes = GetGcuType((string[])valueProvider.GetValue("GcuType").ConvertTo(typeof(string[])), new List<GcuTypeDTO>());
                return model;
            }

            catch (Exception ex)
            {
                model.BindingError = ex;
                return model;
            }
        }
Beispiel #2
0
        public ActionResult EditUav(UavEditModel model)
        {
            if (!ModelState.IsValid || model.BindingError != null)
            {
                TempData["error"] = "Ошибка связывателя: " + model.BindingError.Message;
                return RedirectToAction("index", "admin");
            }

            if (_db.SaveUav(model))
                TempData["success"] = "Изменения в элементе были сохранены";
            else
                TempData["error"] = "Ошибка метода соханения";

            return RedirectToAction("index", "admin");

        }
Beispiel #3
0
        public bool SaveUav(UavEditModel model)
        {
            if (model.Uav == null || model.Payloads == null || model.GcuTypes == null)
                return false;

            var uav = (model.Uav.Id != 0) ? _db.Uavs.Get(model.Uav.Id) : new Uav();

            uav.Endurance = model.Uav.Endurance;
            uav.FlightRadius = model.Uav.FlightRadius;
            uav.LandingProcedure = model.Uav.LandingProcedure;
            uav.Length = model.Uav.Length;
            uav.MaxSpeed = model.Uav.MaxSpeed;
            uav.MinSpeed = model.Uav.MinSpeed;
            uav.PowerUnit = model.Uav.PowerUnit;
            uav.ServiceCeiling = model.Uav.ServiceCeiling;
            uav.TakeoffProcedure = model.Uav.TakeoffProcedure;
            uav.Wingspan = model.Uav.Wingspan;
            uav.TakeoffWeight = model.Uav.TakeoffWeight;

            uav.Payloads?.Clear();
            uav.GcuTypes?.Clear();

            if (uav.GcuTypes == null)
                uav.GcuTypes = new List<GcuType>();

            if (uav.Payloads == null)
                uav.Payloads = new List<Payload>();

            foreach (var item in model.Payloads)
                uav.Payloads.Add(_db.Payloads.GetAll.First(x => x.Id == item.Id));

            foreach (var item in model.GcuTypes)
                uav.GcuTypes.Add(_db.Gcus.GetAll.First(x => x.Id == item.Id));

            uav.Type = _db.UavTypes.GetAll.First(x => x.Id == model.Uav.Type.Id);

            if (model.Uav.Id == 0)
                return _db.Uavs.Add(uav) && _db.Save();

            return _db.Save();
        }