public async Task <ActionResult> Add(ManufacturerViewModel model) { try { var manufacturer = await _makeRepo.GetManufacturerByName(model.Name); if (manufacturer != null) { return(BadRequest("Tillverkaren finns redan i systemet!")); } var make = new Make { Name = model.Name }; _makeRepo.Add(make); if (await _makeRepo.SaveAllAsync()) { return(StatusCode(201, make)); } return(StatusCode(500, "Det gick inte att spara ner tillverkaren")); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public async Task <ActionResult> AddVehicle(AddVehicleViewModel model) { var manufacturer = await _makeRepo.GetManufacturerByName(model.Make); if (manufacturer == null) { return(BadRequest($"Tillverkaren {model.Make} finns ej i systemet")); } var vehicleModel = await _modelRepo.GetModelByName(model.Model); if (vehicleModel == null) { return(BadRequest($"Model beteckning {model.Model} finns ej i systemet")); } var vehicle = new Vehicle { VehicleName = model.Name, RegistrationNumber = model.RegNumber, FuelType = model.FuelType, GearType = model.GearType, Mileage = model.Mileage, ModelYear = model.ModelYear, MakeId = manufacturer.Id, ModelId = vehicleModel.Id }; _vehicleRepo.Add(vehicle); if (await _vehicleRepo.SaveAllAsync()) { var newVehicle = _mapper.Map <VehicleViewModel>(vehicle); return(StatusCode(201, newVehicle)); } return(StatusCode(500, "Gick inte att spara fordonet")); }
public IActionResult AddNewDevice(DeviceDetailsViewModel device) { if (ModelState.IsValid) { //check if manufacturer exists. If not, create it. Manufacturer manufacturer = _manufacturerRepository.GetManufacturerByName(device.ManufacturerName); if (manufacturer == null) { Manufacturer newManufacturer = new Manufacturer() { Name = device.ManufacturerName }; _manufacturerRepository.AddNewManufacturer(newManufacturer); manufacturer = _manufacturerRepository.GetManufacturerByName(device.ManufacturerName); } Models.Type type = _typeRepository.GetTypeByName(device.TypeName); if (type == null) { Models.Type newType = new Models.Type() { Name = device.TypeName }; _typeRepository.AddNewType(newType); type = _typeRepository.GetTypeByName(device.TypeName); } Models.OperatingSystem operatingSystem = _operatingSystemRepository.GetOperatingSystemByName(device.OperatingSystemName); if (operatingSystem == null) { Models.OperatingSystem newOS = new Models.OperatingSystem() { Name = device.OperatingSystemName }; _operatingSystemRepository.AddNewOperatingSystem(newOS); operatingSystem = _operatingSystemRepository.GetOperatingSystemByName(device.OperatingSystemName); } OSversion osVersion = _osVersionRepository.GetOSversionByName(device.OSversionName); if (osVersion == null) { OSversion newOSversion = new OSversion() { Name = device.OSversionName }; _osVersionRepository.AddNewOSversion(newOSversion); osVersion = _osVersionRepository.GetOSversionByName(device.OSversionName); } Processor processor = _processorRepository.GetProcessorByName(device.ProcessorName); if (processor == null) { Processor newProcessor = new Processor() { Name = device.ProcessorName }; _processorRepository.AddNewProcessor(newProcessor); processor = _processorRepository.GetProcessorByName(device.ProcessorName); } RAMamount ramAmount = _ramAmountRepository.GetRAMamountBySize(device.RAMamountSize); if (ramAmount == null) { RAMamount newRAMamount = new RAMamount() { Size = device.RAMamountSize }; _ramAmountRepository.AddNewRAMamount(newRAMamount); ramAmount = _ramAmountRepository.GetRAMamountBySize(device.RAMamountSize); } User user = _userRepository.GetUserByName(device.UserName); Device newDevice = new Device() { Name = device.Name, ManufacturerId = manufacturer.ManufacturerId, Manufacturer = manufacturer, TypeId = type.Id, Type = type, OperatingSystemId = operatingSystem.Id, OperatingSystem = operatingSystem, OSversionId = osVersion.Id, OSversion = osVersion, ProcessorId = processor.Id, Processor = processor, RAMamountId = ramAmount.Id, RAMamount = ramAmount, UserId = user.Id, User = user }; _deviceRepository.AddNewDevice(newDevice); return(RedirectToAction("DeviceAdded")); } else { return(View(device)); } }