public IActionResult Create(ProcessorBindingModel model) { if (!ModelState.IsValid) { TempData["Error"] = "Invalid form."; return(RedirectToAction("Create")); } if (context.Processors.Any(p => p.ModelName == model.ModelName)) { TempData["Error"] = "Model name already exists."; return(RedirectToAction("Create")); } var processor = mapper.Map <Processor>(model); context.Processors.Add(processor); context.SaveChanges(); return(RedirectToAction("Details", "Processors", new { area = "", id = processor.Id })); }
public IActionResult Edit(int id, ProcessorBindingModel model) { if (!ModelState.IsValid) { return(View(model)); } var processor = context.Processors.FirstOrDefault(p => p.Id == id); if (processor == null) { return(NotFound()); } MapProperties(processor, model); //var propertiesOfEntity = processor.GetType().GetProperties(); //var propertiesOfModel = model.GetType().GetProperties(); //foreach (var propertyModel in propertiesOfModel) //{ // foreach (var propertyEntity in propertiesOfEntity) // { // if (propertyEntity.Name == propertyModel.Name) // { // propertyEntity.SetValue(processor, propertyModel.GetValue(model)); // break; // } // } //} context.SaveChanges(); return(RedirectToAction("Details", "Processors", new { area = "", id })); }
public void ProcessorsController_WithValidModel_ShouldCreateProcessorAndAddToDb() { var processorModel = new ProcessorBindingModel() { Architecture = "Cabi lake", Cache = 12, Frequency = 4, Manufacturer = "Antel", MaxMemorySize = 32, ModelName = "i3-7800", NumberOfCores = 6, Power = 200, Price = 350, Socket = "H65" }; var processor = mapper.Map <Processor>(processorModel); processor.Id = 1; controller.Create(processorModel); var dbProcessor = dbContext.Processors.FirstOrDefault(p => p.ModelName == processor.ModelName); Assert.IsNotNull(dbProcessor); Assert.AreEqual(1, this.dbContext.Processors.Count()); Assert.AreEqual(dbProcessor.ModelName, processor.ModelName); Assert.AreEqual(dbProcessor.Architecture, processor.Architecture); Assert.AreEqual(dbProcessor.Power, processor.Power); Assert.AreEqual(dbProcessor.Price, processor.Price); Assert.AreEqual(dbProcessor.Socket, processor.Socket); Assert.AreEqual(dbProcessor.Cache, processor.Cache); Assert.AreEqual(dbProcessor.Frequency, processor.Frequency); Assert.AreEqual(dbProcessor.MaxMemorySize, processor.MaxMemorySize); Assert.AreEqual(dbProcessor.Manufacturer, processor.Manufacturer); Assert.AreEqual(dbProcessor.NumberOfCores, processor.NumberOfCores); }