public async Task <IActionResult> AssignLicenseUser(string licenseId)
        {
            try
            {
                var license = await _licenseInterface.GetLicense(licenseId, Request.Cookies["AssetReference"].ToString());

                if (license == 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
                LicenseDTO          licenseDTO   = _mapper.Map <LicenseDTO>(license);
                List <UserStaffDTO> userStaffDTO = _mapper.Map <List <UserStaffDTO> >(user);

                //Instantiate LicenseUserViewModel
                var licenseUserViewModel = new LicenseUserViewModel()
                {
                    LicenseDTO    = licenseDTO,
                    UserStaffDTOs = userStaffDTO
                };

                //Set the Date to its initial value
                var date = DateTime.Now;
                ViewBag.Date = date.ToString("yyyy-MM-dd");

                ViewBag.LicenseId = licenseUserViewModel.LicenseDTO.Id;

                return(View(licenseUserViewModel));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error encountered in LicenseController||AssignLicenseUser ErrorMessage: {ex.Message}");
                return(RedirectToAction("Index", "Error"));
            }
        }
        public async Task <IActionResult> AssignLicenseUser(LicenseUserViewModel licenseUserViewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(licenseUserViewModel));
                }

                //Check if the user is already assigned in target asset
                var checkUser = await _userLicenseInterface.GetUserOfLicense(licenseUserViewModel.UserStaffId.ToString(), Request.Cookies["AssetReference"].ToString());

                var userLicense = new UserLicense()
                {
                    LicenseId   = licenseUserViewModel.LicenseId,
                    UserStaffId = licenseUserViewModel.UserStaffId,
                    IssuedOn    = licenseUserViewModel.IssuedOn,
                    ReturnedOn  = licenseUserViewModel.ReturedOn,
                    IsActive    = "Yes"
                };

                var result = await _userLicenseInterface.CreateUserLicense(userLicense, Request.Cookies["AssetReference"].ToString());

                if (result.ResponseCode != HttpStatusCode.OK.ToString())
                {
                    ViewBag.ErrorResponse = result.ResponseMessage;
                    return(View());
                }

                var license = new License()
                {
                    Id         = licenseUserViewModel.LicenseId,
                    IsAssigned = "Yes"
                };

                var response = await _licenseInterface.EditLicense(license, 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 LicenseUserViewModel()
                {
                    UserStaffDTOs = userStaffDTO
                };

                ViewBag.LicenseId = userLicense.LicenseId;

                return(View(model));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error encountered in LicenseController||AssignLicenseUser ErrorMessage: {ex.Message}");
                return(RedirectToAction("Index", "Error"));
            }
        }