using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using FrameworkDAL.CustomCode.UserVsPortlet; using FrameworkDAL.DTO.User; using GB5Shared.DTO.Framework.AutoNumber; using GB5Shared.DTO.Framework.Login; using GB5Shared.GenerateAutoNumber; using GB5Shared.Resource.Response; namespace FrameworkBLL.UserVsPortlet { public class UserVsPortletBLL : IUserVsPortletBLL { private readonly IUserVsPortletDAL _UserVsPortletDAL; private readonly AutoNumber _AutoNumber; public UserVsPortletBLL(IUserVsPortletDAL UserVsPortletDAL, AutoNumber AutoNumber) { _UserVsPortletDAL = UserVsPortletDAL; _AutoNumber = AutoNumber; } public async Task GetUserVsPortlet(int UserId, int PageId, LoginDTO LoginDTO) { try { return await _UserVsPortletDAL.GetUserVsPortlet(UserId, PageId, LoginDTO); } catch (Exception ex) { throw new Exception("Error while fetching User Vs Portlet.", ex); } } public async Task SaveUserVsPortlet(List UserVsPortletDTOList, LoginDTO LoginDTO) { if (UserVsPortletDTOList == null || UserVsPortletDTOList.Count == 0) throw new ArgumentNullException(nameof(UserVsPortletDTOList)); try { int count = 1; foreach (var UserVsPortletDTO in UserVsPortletDTOList) { if (UserVsPortletDTO.UserVsPortletId == 0) { var autoNumberDTO = await _AutoNumber.GetAutoNumber(count, "USERVSPORTLET", LoginDTO); UserVsPortletDTO.UserVsPortletId = autoNumberDTO.StartNumber; await _UserVsPortletDAL.SaveUserVsPortlet(UserVsPortletDTO, LoginDTO); } else { await _UserVsPortletDAL.UpdateUserVsPortlet(UserVsPortletDTO, LoginDTO); } } return $"{SuccessResponse.SaveSuccessMessage} " + $"{string.Join(", ", UserVsPortletDTOList.Select(x => x.UserVsPortletId))}"; } catch (Exception) { throw; } } public async Task DeleteUserVsPortletWithUserIdandPageId(int UserId, int PageId, LoginDTO LoginDTO) { try { return await _UserVsPortletDAL.DeleteUserVsPortletWithUserIdandPageId(UserId, PageId, LoginDTO); } catch (Exception) { throw; } } public async Task DeleteUserVsPortlet(int UserVsPortletId, LoginDTO LoginDTO) { try { return await _UserVsPortletDAL.DeleteUserVsPortlet(UserVsPortletId, LoginDTO); } catch (Exception) { throw; } } public async Task GetUservsPortletCriteriaConfigUpdate(int PageId, int PortletId, int CriteriaConfigId, LoginDTO LoginDTO) { try { await _UserVsPortletDAL.GetUservsPortletCriteriaConfigUpdate(PageId, PortletId, CriteriaConfigId, LoginDTO); return "Records Updated"; } catch (Exception ex) { throw new Exception("Error while fetching User Vs Portlet.", ex); } } } }