public async Task <IActionResult> AssignAssetsUsers(string assetId) { try { var asset = await _assetInterface.GetAsset(assetId, Request.Cookies["AssetReference"].ToString()); if (asset == null) { return(RedirectToAction("Index", "Error")); } var user = await _userStaffInterface.GetUserStaffs(Request.Cookies["AssetReference"].ToString()); if (user == null) { return(RedirectToAction("Index", "Error")); } //Map the objects results to corresponding DTO's AssetsDTO assetsDTO = _mapper.Map <AssetsDTO>(asset); List <UserStaffDTO> userStaffDTO = _mapper.Map <List <UserStaffDTO> >(user); //Instantiate AssetsUserVIewModel var assetsUserVIewModel = new AssetsUserVIewModel() { AssetsDTO = assetsDTO, UserStaffDTOs = userStaffDTO }; //Set the Date to its initial value var date = DateTime.Now; ViewBag.Date = date.ToString("yyyy-MM-dd"); ViewBag.AssetId = assetsUserVIewModel.AssetsDTO.Id; return(View(assetsUserVIewModel)); } catch (Exception ex) { _logger.LogError($"Error encountered in AssetsController||AssignAssetsUsers ErrorMessage: {ex.Message}"); return(RedirectToAction("Index", "Error")); } }
public async Task <IActionResult> AssignAssetsUsers(AssetsUserVIewModel assetsUserVIewModel) { try { if (!ModelState.IsValid) { return(View(assetsUserVIewModel)); } var userAssetsUpdate = new UserAssets() { AssetsId = assetsUserVIewModel.AssetId, IsActive = "No" }; //Check if the user is already assigned in target asset var checkUser = await _userAssetsInterface.GetUserOfAssets(assetsUserVIewModel.UserStaffId.ToString(), Request.Cookies["AssetReference"].ToString()); if (checkUser != null) { } //Update all existing user of specific assets to IsActive = No var userAssets = await _userAssetsInterface.EditUserAssets(userAssetsUpdate, Request.Cookies["AssetReference"].ToString()); if (userAssets.ResponseCode != HttpStatusCode.OK.ToString()) { ViewBag.ErrorResponse = userAssets.ResponseMessage; return(View()); } var userAsset = new UserAssets() { AssetsId = assetsUserVIewModel.AssetId, UserStaffId = assetsUserVIewModel.UserStaffId, IssuedOn = DateTime.Now, ReturnedOn = assetsUserVIewModel.ReturedOn, IsActive = "Yes", }; var result = await _userAssetsInterface.CreateUserAssets(userAsset, Request.Cookies["AssetReference"].ToString()); if (result.ResponseCode != HttpStatusCode.OK.ToString()) { ViewBag.ErrorResponse = result.ResponseMessage; return(View()); } var asset = new Asset() { Id = assetsUserVIewModel.AssetId, IsAssinged = "Yes" }; var response = await _assetInterface.EditAsset(asset, Request.Cookies["AssetReference"].ToString()); if (response.ResponseCode != HttpStatusCode.OK.ToString()) { return(RedirectToAction("Index", "Error")); } var user = await _userStaffInterface.GetUserStaffs(Request.Cookies["AssetReference"].ToString()); if (user == null) { return(RedirectToAction("Index", "Error")); } //Map the objects results to corresponding DTO's List <UserStaffDTO> userStaffDTO = _mapper.Map <List <UserStaffDTO> >(user); //Instantiate AssetsUserVIewModel var model = new AssetsUserVIewModel() { UserStaffDTOs = userStaffDTO }; ViewBag.AssetId = userAsset.AssetsId; return(View(model)); } catch (Exception ex) { _logger.LogError($"Error encountered in AssetsController||AssignAssetsUsers ErrorMessage: {ex.Message}"); return(RedirectToAction("Index", "Error")); } }