public async Task <IActionResult> AddAsync([FromBody] LocationAddModel mLocation) { if (!ModelState.IsValid) { return(HttpBadRequest(ModelStateError())); } var locationId = await _locationRepository.AddAsync(mLocation); return(CreatedAtRoute("GetByLocationIdAsync", new { controller = "Locations", locationId = locationId }, mLocation)); }
public int Add(LocationAddModel mLocation) { var customer = _context.Projects.FirstOrDefault(l => l.ProjectId == mLocation.ProjectId); if (customer == null) { throw new ExpectException("Could not find Project data which ProjectId equal to " + mLocation.ProjectId); } var device = _context.Devices.FirstOrDefault(l => l.DeviceId == mLocation.DeviceId); if (device == null) { throw new ExpectException("Could not find Device data which DeviceId equal to " + mLocation.DeviceId); } //InstallationNumber must be unique var checkData = _context.Locations.Where(dl => dl.InstallationNumber == mLocation.InstallationNumber).ToList(); if (checkData.Count > 0) { throw new ExpectException("The data which InstallationNumber equal to '" + mLocation.InstallationNumber + "' already exist in system"); } //DeviceSerialNo must be unique checkData = _context.Locations.Where(dl => dl.DeviceSerialNo == mLocation.DeviceSerialNo).ToList(); if (checkData.Count > 0) { throw new ExpectException("The data which DeviceSerialNo equal to '" + mLocation.DeviceSerialNo + "' already exist in system"); } //Check Orientation if (!Enum.IsDefined(typeof(Orientation), mLocation.Orientation)) { throw new ExpectException("Invalid Orientation.You can get correct Orientation values from API"); } //Check DeviceType if (!Enum.IsDefined(typeof(DeviceType), mLocation.DeviceType)) { throw new ExpectException("Invalid DeviceType.You can get correct DeviceType values from API"); } //Check CommMode if (!Enum.IsDefined(typeof(CommMode), mLocation.CommMode)) { throw new ExpectException("Invalid CommMode.You can get correct CommMode values from API"); } //Get UserInfo var user = _loginUser.GetLoginUserInfo(); var model = new Location { Building = mLocation.Building, CommAddress = mLocation.CommAddress, CommMode = mLocation.CommMode, CurrentPosition = mLocation.CurrentPosition, Description = mLocation.Description, DeviceSerialNo = mLocation.DeviceSerialNo, DeviceId = mLocation.DeviceId, DeviceType = mLocation.DeviceType, FavorPositionFirst = mLocation.FavorPositionFirst, FavorPositionrSecond = mLocation.FavorPositionrSecond, FavorPositionThird = mLocation.FavorPositionThird, Floor = mLocation.Floor, InstallationNumber = mLocation.InstallationNumber, Orientation = mLocation.Orientation, ProjectId = mLocation.ProjectId, RoomNo = mLocation.RoomNo, Creator = user.UserName, CreateDate = DateTime.Now }; _context.Locations.Add(model); _context.SaveChangesAsync(); return(model.LocationId); }