public ActionResult CreateDevice(string buttonSubmit, string nameDevice) { deviceDataView.DeviceList = GetAllDevices(); devicesList = deviceDataView.DeviceList; Factory factory = new Factory(); bool nameDouble = devicesList.Exists(device => device.Name == nameDevice); if (string.IsNullOrEmpty(nameDevice) == false && nameDouble == false) { switch (buttonSubmit) { case "TV": { devicesList.Add(factory.CreatorTV(nameDevice)); break; } case "SD": { devicesList.Add(factory.CreatorSound(nameDevice)); break; } case "condit": { devicesList.Add(factory.CreatorConditioner(nameDevice)); break; } case "heater": { devicesList.Add(factory.CreatorHeater(nameDevice)); break; } default: //blower { devicesList.Add(factory.CreatorBlower(nameDevice)); break; } } deviceDataView.Message = null; deviceDataView.DeviceActive = devicesList.Count - 1; EventStateDevice(); MapperDevices mapper = new MapperDevices(); DeviceDb deviceDb = mapper.GetDeviceDb(devicesList.Last <IDevicable>()); deviceDbContext.Devices.Add(deviceDb); deviceDbContext.SaveChanges(); TempData["deviceData"] = deviceDataView; return(RedirectToAction("Index")); } else { deviceDataView.Message = "Устройство с таким именем уже имеется, введите другое имя."; return(View(deviceDataView)); } }