public ActionResult CreateNewDevice(int?id) { var serialnumber = db.SerialNumberGenerates.Where(s => s.GenerateID == id).Select(s => s.SerialNumber).DefaultIfEmpty().First(); CreateDeviceViewModels device = new CreateDeviceViewModels(); device.SerialNumber = serialnumber; ViewBag.LocationStockID = new SelectList(db.LocationStocks.OrderBy(d => d.LocationName), "LocationID", "LocationName"); ViewBag.Uri = System.Web.HttpContext.Current.Request.UrlReferrer; return(View(device)); }
public ActionResult CreateNewDevice([Bind(Include = "SerialNumber,ModelName,LocationStock,IPAddress,FixAccess,PRNumber,IsAsset,MacAddress")] CreateDeviceViewModels viewmodels, string Uri) { var sr = viewmodels.SerialNumber.Replace("\r", "").Replace("\n", "").Replace("\t", "").ToString(); if (viewmodels.IPAddress != null) { var ip = viewmodels.IPAddress.Replace("\r", "").Replace("\n", "").Replace("\t", "").ToString(); if (db.Devices.Any(d => d.IPAddress.Trim() == ip.Trim() && d.IPAddress != null && d.IPAddress.Trim() != "DHCP")) { ModelState.AddModelError("IPAddress", "IPAddress is Duplicated"); } } if (db.Devices.Any(d => d.SerialNumber.Trim() == viewmodels.SerialNumber.Trim())) { ModelState.AddModelError("SerialNumber", "SerialNumber is Duplicated"); } if (db.Devices.Any(d => d.SerialNumber.Trim() == sr.Trim())) { ModelState.AddModelError("SerialNumber", "SerialNumber is Duplicated"); } if (ModelState.IsValid) { Device device = new Device(); device.StatusID = 3; device.MacAddress = viewmodels.MacAddress; device.SerialNumber = viewmodels.SerialNumber; device.ModelID = db.Models.Where(b => b.ModelName == viewmodels.ModelName).Select(b => b.ModelID).DefaultIfEmpty().First(); device.StatusName = db.Status.Where(b => b.StatusID == device.StatusID).Select(b => b.Status1).DefaultIfEmpty().First(); device.BrandID = db.Models.Where(b => b.ModelName == viewmodels.ModelName).Select(b => b.BrandID).DefaultIfEmpty().First(); device.Specification = db.Models.Where(b => b.ModelName == viewmodels.ModelName).Select(b => b.Specification).DefaultIfEmpty().First(); device.DeviceTypeID = db.Models.Where(b => b.ModelName == viewmodels.ModelName).Select(b => b.DeviceTypeID).DefaultIfEmpty().First(); device.Type = db.DeviceTypes.Where(b => b.DeviceTypeID == device.DeviceTypeID).Select(b => b.Type).DefaultIfEmpty().First(); device.BrandName = db.Brands.Where(b => b.BrandID == device.BrandID).Select(b => b.BrandName).DefaultIfEmpty().First(); device.LocationStockID = viewmodels.LocationStock; device.LocationStockName = db.LocationStocks.Where(b => b.LocationID == device.LocationStockID).Select(b => b.LocationName).DefaultIfEmpty().First(); device.ModelName = viewmodels.ModelName; device.IPAddress = viewmodels.IPAddress; device.PRNumber = viewmodels.PRNumber; device.FixAccess = viewmodels.FixAccess; device.DateCreate = DateTime.Now; device.DateUpdate = DateTime.Now; device.CreateBy = System.Web.HttpContext.Current.User.Identity.Name; device.UpdateBy = System.Web.HttpContext.Current.User.Identity.Name; device.InstockDate = DateTime.Today; if (viewmodels.IsAsset == true) { device.Description = "5k"; } RecordInstock recordinstock = new RecordInstock(); recordinstock.Brand = db.Brands.Where(b => b.BrandID == device.BrandID).Select(b => b.BrandName).DefaultIfEmpty().First(); recordinstock.DeviceType = db.DeviceTypes.Where(b => b.DeviceTypeID == device.DeviceTypeID).Select(b => b.Type).DefaultIfEmpty().First(); recordinstock.InstockBy = System.Web.HttpContext.Current.User.Identity.Name; recordinstock.DateInstock = device.DateCreate; recordinstock.Model = device.ModelName; recordinstock.SerialNumber = device.SerialNumber; recordinstock.Status = db.Status.Where(b => b.StatusID == device.StatusID).Select(b => b.Status1).DefaultIfEmpty().First(); recordinstock.LocationStock = device.LocationStockName; if (viewmodels.IsAsset == true) { recordinstock.IsFixAsset = "Asset"; } db.Devices.Add(device); db.RecordInstocks.Add(recordinstock); db.SaveChanges(); return(RedirectToAction("LastCreate", "Device", new { uri = Uri })); } ViewBag.LocationStockID = new SelectList(db.LocationStocks.OrderBy(d => d.LocationName), "LocationID", "LocationName", viewmodels.LocationStock); return(View(viewmodels)); }