public int InsertOrganizationSubscription(OrganizationSubscription OrganizationSubscription) { //context.OrganizationSubscriptions.Add(OrganizationSubscription); SqlParameter[] Param = new SqlParameter[9]; Param[0] = new SqlParameter("@pOrganizationSubscriptionGUID", SqlDbType.UniqueIdentifier); Param[0].Value = OrganizationSubscription.OrganizationSubscriptionGUID; Param[1] = new SqlParameter("@pOrganizationGUID", SqlDbType.UniqueIdentifier); Param[1].Value = OrganizationSubscription.OrganizationGUID; Param[2] = new SqlParameter("@pVersion", SqlDbType.Int); Param[2].Value = OrganizationSubscription.Version; Param[3] = new SqlParameter("@pIsActive", SqlDbType.Bit); Param[3].Value = OrganizationSubscription.IsActive; Param[4] = new SqlParameter("@pSubscriptionPurchased", SqlDbType.Int); Param[4].Value = OrganizationSubscription.SubscriptionPurchased; Param[5] = new SqlParameter("@pSubscriptionConsumed", SqlDbType.Int); Param[5].Value = OrganizationSubscription.SubscriptionConsumed; Param[6] = new SqlParameter("@pStartDate", SqlDbType.DateTime); Param[6].Value = (object)OrganizationSubscription.StartDate ?? DBNull.Value; Param[7] = new SqlParameter("@pExpiryDate", SqlDbType.DateTime); Param[7].Value = (object)OrganizationSubscription.ExpiryDate ?? DBNull.Value; Param[8] = new SqlParameter("@pCreatedDate", SqlDbType.DateTime); Param[8].Value = (object)OrganizationSubscription.CreatedDate ?? DBNull.Value; return(context.Database.ExecuteSqlCommand("insert into OrganizationSubscriptions(OrganizationSubscriptionGUID,OrganizationGUID,Version,IsActive,SubscriptionPurchased," + "SubscriptionConsumed,StartDate,ExpiryDate,CreatedDate)values(@pOrganizationSubscriptionGUID,@pOrganizationGUID,@pVersion,@pIsActive,@pSubscriptionPurchased," + "@pSubscriptionConsumed,@pStartDate,@pExpiryDate,@pCreatedDate)", Param)); }
public int UpdateOrganizationSubscription(OrganizationSubscription OrganizationSubscription) { // context.Entry(OrganizationSubscription).State = EntityState.Modified; SqlParameter[] Param = new SqlParameter[9]; Param[0] = new SqlParameter("@pOrganizationSubscriptionGUID", SqlDbType.UniqueIdentifier); Param[0].Value = OrganizationSubscription.OrganizationSubscriptionGUID; Param[1] = new SqlParameter("@pOrganizationGUID", SqlDbType.UniqueIdentifier); Param[1].Value = OrganizationSubscription.OrganizationGUID; Param[2] = new SqlParameter("@pVersion", SqlDbType.Int); Param[2].Value = OrganizationSubscription.Version; Param[3] = new SqlParameter("@pIsActive", SqlDbType.Bit); Param[3].Value = OrganizationSubscription.IsActive; Param[4] = new SqlParameter("@pSubscriptionPurchased", SqlDbType.Int); Param[4].Value = OrganizationSubscription.SubscriptionPurchased; Param[5] = new SqlParameter("@pSubscriptionConsumed", SqlDbType.Int); Param[5].Value = OrganizationSubscription.SubscriptionConsumed; Param[6] = new SqlParameter("@pStartDate", SqlDbType.DateTime); Param[6].Value = (object)OrganizationSubscription.StartDate ?? DBNull.Value; Param[7] = new SqlParameter("@pExpiryDate", SqlDbType.DateTime); Param[7].Value = (object)OrganizationSubscription.ExpiryDate ?? DBNull.Value; Param[8] = new SqlParameter("@pCreatedDate", SqlDbType.DateTime); Param[8].Value = (object)OrganizationSubscription.CreatedDate ?? DBNull.Value; return(context.Database.ExecuteSqlCommand("update OrganizationSubscriptions set OrganizationGUID=@pOrganizationGUID,Version=@pVersion,IsActive=@pIsActive,SubscriptionPurchased=@pSubscriptionPurchased," + "SubscriptionConsumed=@pSubscriptionConsumed,StartDate=@pStartDate,ExpiryDate=@pExpiryDate,CreatedDate=@pCreatedDate where OrganizationSubscriptionGUID=@pOrganizationSubscriptionGUID", Param)); }
public void Put(SubscribeToOrganization request) { if (request.OrganizationId <= 0) { throw new ArgumentNullException(nameof(request.OrganizationId)); } var user = GetUser(); var userId = user.GetUserId(); AssertCanViewOrganization(Db, request.OrganizationId, user); var rowsDeleted = Db.Delete <OrganizationSubscription>(x => x.OrganizationId == request.OrganizationId && x.UserId == userId); var now = DateTime.Now; var sub = new OrganizationSubscription { OrganizationId = request.OrganizationId, UserId = userId, UserName = user.UserName, PostTypes = request.PostTypes.Select(x => x.ToString()).ToArray(), FrequencyDays = request.Frequency != null ? (int)request.Frequency.Value : (int?)null, Created = now, }; Db.Insert(sub); ClearOrganizationCaches(); }
public ActionResult Edit(string id = "") { Logger.Debug("Inside Organization Subscription Controller- Edit"); try { if (Session["OrganizationGUID"] != null) { if (!string.IsNullOrEmpty(id)) { OrganizationSubscription organizationSubscription = _IOrganizationSubscriptionRepository.GetOrganizationSubscriptionByOrgID(new Guid(id)); if (organizationSubscription != null) { System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo(); dateInfo.ShortDatePattern = "dd-MMM-yy"; OrganizationSubscriptionView organizationSubscriptionView = new OrganizationSubscriptionView { OrganizationSubscriptionGUID = organizationSubscription.OrganizationSubscriptionGUID.ToString(), OrganizationGUID = organizationSubscription.OrganizationGUID.ToString(), Version = organizationSubscription.Version, IsActive = organizationSubscription.IsActive, SubscriptionPurchased = organizationSubscription.SubscriptionPurchased, SubscriptionConsumed = organizationSubscription.SubscriptionConsumed, StartDate = Convert.ToDateTime(organizationSubscription.StartDate), CreatedDate = Convert.ToDateTime(organizationSubscription.CreatedDate), ExpiryDate = Convert.ToDateTime(organizationSubscription.ExpiryDate).ToString("dd-MMM-yy") //DateTime.ParseExact(organizationSubscription.ExpiryDate.ToString(), "dd-MMM-yy hh:mm:ss tt", CultureInfo.InvariantCulture) //Convert.ToDateTime(organizationSubscription.ExpiryDate) }; ViewBag.UserType = _IGlobalUserRepository.GetUserType(new Guid(Session["UserGUID"].ToString())); ViewBag.OrganizationName = _IOrganizationRepository.GetOrganizationByID(organizationSubscription.OrganizationGUID).OrganizationFullName; return(View(organizationSubscriptionView)); } else { return(View()); } } else { return(RedirectToAction("../User/Login")); } } else { return(RedirectToAction("SessionTimeOut", "User")); } } catch (Exception ex) { Logger.Error(ex.Message); return(RedirectToAction("../User/Login")); } }
public int UpdateOrganizationSubscriptionCount(OrganizationSubscription OrganizationSubscription) { //using (var dataContext = new WorkersInMotionDB()) //{ // var qry = from p in dataContext.OrganizationSubscriptions where p.OrganizationSubscriptionGUID == OrganizationSubscription.OrganizationSubscriptionGUID select p; // var item = qry.Single(); // item.SubscriptionConsumed = item.SubscriptionConsumed + 1; // return dataContext.SaveChanges(); //} SqlParameter[] Param = new SqlParameter[2]; Param[0] = new SqlParameter("@pSubscriptionConsumed", SqlDbType.Int); Param[0].Value = OrganizationSubscription.SubscriptionConsumed + 1; Param[1] = new SqlParameter("@pOrganizationSubscriptionGUID", SqlDbType.UniqueIdentifier); Param[1].Value = OrganizationSubscription.OrganizationSubscriptionGUID; return(context.Database.ExecuteSqlCommand("Update OrganizationSubscriptions set SubscriptionConsumed=@pSubscriptionConsumed where OrganizationSubscriptionGUID=@pOrganizationSubscriptionGUID", Param)); }
public async Task <OrganizationSubscription> GetOrganizationSubscription(string partitionKey, string rowKey) { OrganizationSubscription subscription = null; CloudTable scanSourceSubscriptions = _cloudTableClient.GetTableReference(TABLE_NAME); bool exists = await scanSourceSubscriptions.ExistsAsync(); if (exists) { TableOperation retrieveOperation = TableOperation.Retrieve <OrganizationEntity>(partitionKey, rowKey); TableResult result = await scanSourceSubscriptions.ExecuteAsync(retrieveOperation); OrganizationEntity orgEntity = result.Result as OrganizationEntity; if (orgEntity != null) { subscription = orgEntity.Subscription; } } return(subscription); }
public ActionResult Edit(OrganizationSubscriptionView organizationSubscriptionView) { Logger.Debug("Inside Organization Subscription Controller- Edit HttpPost"); try { if (Session["OrganizationGUID"] != null) { OrganizationSubscription organizationSubscription = new OrganizationSubscription(); organizationSubscription.OrganizationSubscriptionGUID = new Guid(organizationSubscriptionView.OrganizationSubscriptionGUID); organizationSubscription.OrganizationGUID = new Guid(organizationSubscriptionView.OrganizationGUID); organizationSubscription.IsActive = organizationSubscriptionView.IsActive; organizationSubscription.Version = organizationSubscriptionView.Version; organizationSubscription.SubscriptionPurchased = organizationSubscriptionView.SubscriptionPurchased; organizationSubscription.SubscriptionConsumed = organizationSubscriptionView.SubscriptionConsumed; // organizationSubscription.StartDate = organizationSubscriptionView.StartDate; organizationSubscription.ExpiryDate = Convert.ToDateTime(organizationSubscriptionView.ExpiryDate); //organizationSubscription.CreatedDate = organizationSubscriptionView.CreatedDate; int result = _IOrganizationSubscriptionRepository.UpdateOrganizationSubscription(organizationSubscription); //int result = _IOrganizationSubscriptionRepository.Save(); if (result > 0) { return(RedirectToAction("../Organization/Index")); } else { return(View()); } } else { return(RedirectToAction("SessionTimeOut", "User")); } } catch (Exception ex) { Logger.Error(ex.Message); return(RedirectToAction("../User/Login")); } }
public ActionResult Index(string id = "") { Logger.Debug("Inside Organization Subscription Controller- Index"); try { if (Session["OrganizationGUID"] != null) { OrganizationSubscriptionViewModel pOrganizationSubscriptionViewModel = new OrganizationSubscriptionViewModel(); pOrganizationSubscriptionViewModel.OrganizationSubscriptionViewList = new List <OrganizationSubscriptionView>(); if (!string.IsNullOrEmpty(id)) { OrganizationSubscription organizationSubscription = _IOrganizationSubscriptionRepository.GetOrganizationSubscriptionByOrgID(new Guid(id)); OrganizationSubscriptionView organizationSubscriptionView = new OrganizationSubscriptionView { OrganizationSubscriptionGUID = organizationSubscription.OrganizationSubscriptionGUID.ToString(), OrganizationGUID = organizationSubscription.OrganizationGUID.ToString(), Version = organizationSubscription.Version, IsActive = organizationSubscription.IsActive, SubscriptionPurchased = organizationSubscription.SubscriptionPurchased, SubscriptionConsumed = organizationSubscription.SubscriptionConsumed, StartDate = Convert.ToDateTime(organizationSubscription.StartDate), CreatedDate = Convert.ToDateTime(organizationSubscription.CreatedDate), ExpiryDate = Convert.ToDateTime(organizationSubscription.ExpiryDate).ToString("dd-MMM-yy"), OrganizationName = _IOrganizationRepository.GetOrganizationByID(organizationSubscription.OrganizationGUID).OrganizationFullName }; ViewBag.OrganizationName = organizationSubscriptionView.OrganizationName; pOrganizationSubscriptionViewModel.OrganizationSubscriptionViewList.Add(organizationSubscriptionView); } else { List <OrganizationSubscription> organizationSubscriptionList = _IOrganizationSubscriptionRepository.GetOrganizationSubscription().ToList(); foreach (OrganizationSubscription organizationSubscription in organizationSubscriptionList) { OrganizationSubscriptionView organizationSubscriptionView = new OrganizationSubscriptionView { OrganizationSubscriptionGUID = organizationSubscription.OrganizationSubscriptionGUID.ToString(), OrganizationGUID = organizationSubscription.OrganizationGUID.ToString(), Version = organizationSubscription.Version, IsActive = organizationSubscription.IsActive, SubscriptionPurchased = organizationSubscription.SubscriptionPurchased, SubscriptionConsumed = organizationSubscription.SubscriptionConsumed, StartDate = Convert.ToDateTime(organizationSubscription.StartDate), CreatedDate = Convert.ToDateTime(organizationSubscription.CreatedDate), ExpiryDate = Convert.ToDateTime(organizationSubscription.ExpiryDate).ToString("dd-MMM-yy"), OrganizationName = _IOrganizationRepository.GetOrganizationByID(organizationSubscription.OrganizationGUID).OrganizationFullName }; pOrganizationSubscriptionViewModel.OrganizationSubscriptionViewList.Add(organizationSubscriptionView); } ViewBag.OrganizationName = "admin"; } ViewBag.UserType = _IGlobalUserRepository.GetUserType(new Guid(Session["UserGUID"].ToString())); return(View(pOrganizationSubscriptionViewModel)); } else { return(RedirectToAction("SessionTimeOut", "User")); } } catch (Exception ex) { Logger.Error(ex.Message); return(RedirectToAction("../User/Login")); } }
//public UserController(WorkersInMotionJobContext context) //{ // // this._IJobRepository = new JobRepository(context); //} #endregion public ActionResult Index(string id = "", string regionguid = "", string selection = "") { Logger.Debug("Inside User Controller- Index"); try { if (Session["OrganizationGUID"] != null) { if (!string.IsNullOrEmpty(id)) { TempData["TabName"] = id; } else { TempData["TabName"] = "Details"; } mycompany pmycompany = new mycompany(); pmycompany.OrganizationEditView = new OrganizationEditView(); pmycompany.AspNetUserViewModel = new AspNetUserViewModel(); pmycompany.TerritoryViewModel = new TerritoryViewModel(); pmycompany.RegionViewModel = new RegionViewModel(); //switch (id) //{ // case "Users": // ViewBag.TabName = "Users"; var userList = new AspNetUserViewModel(); userList.Users = new List <AspUser>(); var appUser = new List <UserProfile>(); appUser = _IUserProfileRepository.GetUserProfilesbyOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString())).OrderBy(sort => sort.FirstName).ToList(); foreach (var user in appUser.ToList()) { UserSubscription userSubscription = _IUserSubscriptionRepository.GetUserSubscriptionByUserID(user.UserGUID); GlobalUser _globalUser = _IGlobalUserRepository.GetGlobalUserByID(user.UserGUID); string Regionname = string.Empty; string Territoryname = string.Empty; string Groupname = string.Empty; string userType = string.Empty; if (_globalUser != null) { OrganizationUsersMap _orgUserMap = _IOrganizationRepository.GetOrganizationUserMapByUserGUID(user.UserGUID); if (_orgUserMap != null && _orgUserMap.RegionGUID != null) { Regionname = _IRegionRepository.GetRegionNameByRegionGUID(new Guid(_orgUserMap.RegionGUID.ToString())); } else { Regionname = ""; } if (_orgUserMap != null && _orgUserMap.TerritoryGUID != null) { Territoryname = _ITerritoryRepository.GetTerritoryNameByTerritoryGUID(new Guid(_orgUserMap.TerritoryGUID.ToString())); } else { Territoryname = ""; } // Groupname = _IGroupRepository.GetGroupNameByGroupGUID(new Guid(_globalUser.GroupGUID.ToString())); userType = _IGlobalUserRepository.GetUserTypeByRoleID(_globalUser.Role_Id); } string UserTypeName = _IGlobalUserRepository.GetUserRoleName(user.UserGUID); if (userSubscription != null) { userList.Users.Add(new AspUser { UserTypeName = UserTypeName, RegionName = Regionname, TerritoryName = Territoryname, GroupName = Groupname, OrganizationSubscriptionGUID = userSubscription.OrganizationSubscriptionGUID.ToString(), UserType = userType, IsActive = userSubscription.IsActive, SubscriptionGUID = userSubscription.UserSubscriptionGUID.ToString(), FirstName = user.FirstName, LastName = user.LastName, Id = user.UserGUID.ToString(), EmailID = user.EmailID, MobilePhone = user.MobilePhone, City = user.City, State = user.State, Country = user.Country }); } } OrganizationSubscription orgSubscription = new OrganizationSubscription(); if (Session["UserType"] != null && Session["UserType"].ToString() != "WIM_A") { orgSubscription = _IOrganizationSubscriptionRepository.GetOrganizationSubscriptionByOrgID(new Guid(Session["OrganizationGUID"].ToString())); if (orgSubscription != null) { ViewBag.EnableCreateUserButton = "true"; } else { ViewBag.EnableCreateUserButton = "false"; } //if (orgSubscription != null && orgSubscription.SubscriptionPurchased > orgSubscription.SubscriptionConsumed) //{ // ViewBag.EnableCreateUserButton = "true"; //} //else //{ // ViewBag.EnableCreateUserButton = "false"; //} } else { ViewBag.EnableCreateUserButton = "false"; } pmycompany.AspNetUserViewModel = userList; // break; //case "Region": // ViewBag.TabName = "Regions"; var territoryList = new TerritoryViewModel(); territoryList.Territory = new List <TerritoryModel>(); List <Territory> appTerritory = new List <Territory>(); if (!string.IsNullOrEmpty(regionguid) && regionguid != Guid.Empty.ToString()) { appTerritory = _ITerritoryRepository.GetTerritoryByRegionGUID(new Guid(regionguid)).ToList(); TempData["TabName"] = "Markets"; ViewBag.AddTerritory = "true"; ViewBag.Id = regionguid; } else { appTerritory = _ITerritoryRepository.GetTerritoryByOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString())).ToList(); } foreach (var territory in appTerritory.ToList()) { territoryList.Territory.Add(new TerritoryModel { Name = territory.Name, TerritoryGUID = territory.TerritoryGUID.ToString(), RegionGUID = territory.RegionGUID != null ? territory.RegionGUID.ToString() : Guid.Empty.ToString(), Description = territory.Description, OrganizationGUID = territory.OrganizationGUID != null ? territory.OrganizationGUID.ToString() : Guid.Empty.ToString() }); } StringBuilder sb = new StringBuilder(); sb.Append("<div class='actions'>"); sb.Append("<div class='btn-group'>"); if (!string.IsNullOrEmpty(regionguid) && regionguid != Guid.Empty.ToString()) { sb.Append("<a href='#' id='ulaworkergroup' class='btn green' data-toggle='dropdown'><i class='icon-map-marker'></i> " + _IRegionRepository.GetRegionNameByRegionGUID(new Guid(regionguid)) + " <i class='icon-angle-down'></i></a>"); } else { if (!string.IsNullOrEmpty(selection) && selection == "All") { sb.Append("<a href='#' id='ulaworkergroup' class='btn green' data-toggle='dropdown'><i class='icon-map-marker'></i>All<i class='icon-angle-down'></i></a>"); } else { sb.Append("<a href='#' id='ulaworkergroup' class='btn green' data-toggle='dropdown'><i class='icon-map-marker'></i> Select Region <i class='icon-angle-down'></i></a>"); } } sb.Append("<ul id='ulworkgroup' style='height:100px;overflow-y:scroll' class='dropdown-menu pull-right'>"); if (string.IsNullOrEmpty(selection) || selection != "All") { sb.Append("<li><a href=" + Url.Action("Index", "MyCompany", new { id = "Markets", selection = "All" }) + ">All</a></li>"); } List <Region> RegList = _IRegionRepository.GetRegionByOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString())).ToList(); foreach (Region item in RegList) { sb.Append("<li><a href=" + Url.Action("Index", "MyCompany", new { regionguid = item.RegionGUID.ToString() }) + " data-groupguid=" + item.RegionGUID + ">" + item.Name + "</a></li>"); } sb.Append("</ul>"); sb.Append("</div>"); sb.Append("</div>"); ViewBag.RegionList = sb.ToString(); pmycompany.TerritoryViewModel = territoryList; // break; //case "Territory": // ViewBag.TabName = "Territories"; var regionList = new RegionViewModel(); regionList.Region = new List <RegionModel>(); var appRegion = _IRegionRepository.GetRegionByOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString())).ToList(); foreach (var region in appRegion.ToList()) { regionList.Region.Add(new RegionModel { Name = region.Name, RegionGUID = region.RegionGUID.ToString(), Description = region.Description, OrganizationGUID = region.OrganizationGUID != null ? region.OrganizationGUID.ToString() : Guid.Empty.ToString() }); } pmycompany.RegionViewModel = regionList; // break; //case "Organization": // ViewBag.TabName = "Details"; OrganizationEditView organization = new OrganizationEditView(); organization.OrganizationGUID = new Guid(Session["OrganizationGUID"].ToString()); Organization Organization = _IOrganizationRepository.GetOrganizationByID(organization.OrganizationGUID); if (organization != null) { organization.OrganizationFullName = Organization.OrganizationFullName; organization.OrganizationName = Organization.OrganizationFullName.Trim(); organization.OrganizationGUID = Organization.OrganizationGUID; organization.Website = Organization.Website; organization.Phone = Organization.Phone; organization.TimeZone = Organization.TimeZone.ToString(); organization.AddressLine1 = Organization.AddressLine1; organization.AddressLine2 = Organization.AddressLine2; organization.ImageURL = Organization.ImageURL; organization.City = Organization.City; organization.Country = Organization.Country; organization.State = Organization.State; organization.ZipCode = Organization.ZipCode; organization.EmailID = Organization.EmailID; organization.IsActive = Organization.IsActive; organization.IsDeleted = Organization.IsDeleted; organization.CreatedDate = Organization.CreateDate; organization.CreateBy = Organization.CreateBy; pmycompany.OrganizationEditView = organization; } // break; //default: // ViewBag.TabName = "Details"; // OrganizationEditView porganization = new OrganizationEditView(); // porganization.OrganizationGUID = new Guid(Session["OrganizationGUID"].ToString()); // Organization pOrganization = _IOrganizationRepository.GetOrganizationByID(porganization.OrganizationGUID); // if (porganization != null) // { // porganization.OrganizationFullName = pOrganization.OrganizationFullName; // porganization.OrganizationName = pOrganization.OrganizationFullName.Trim(); // porganization.OrganizationGUID = pOrganization.OrganizationGUID; // porganization.Website = pOrganization.Website; // porganization.Phone = pOrganization.Phone; // porganization.TimeZone = pOrganization.TimeZone.ToString(); // porganization.AddressLine1 = pOrganization.AddressLine1; // porganization.AddressLine2 = pOrganization.AddressLine2; // porganization.ImageURL = pOrganization.ImageURL; // porganization.City = pOrganization.City; // porganization.Country = pOrganization.Country; // porganization.State = pOrganization.State; // porganization.ZipCode = pOrganization.ZipCode; // porganization.EmailID = pOrganization.EmailID; // porganization.IsActive = pOrganization.IsActive; // porganization.IsDeleted = pOrganization.IsDeleted; // porganization.CreatedDate = pOrganization.CreateDate; // porganization.CreateBy = pOrganization.CreateBy; // pmycompany.OrganizationEditView.Add(porganization); // } // break; // } return(View(pmycompany)); } else { return(RedirectToAction("SessionTimeOut", "User")); } } catch (Exception ex) { Logger.Error(ex.Message); return(RedirectToAction("Login", "User")); } }
private AspNetUserViewModel UserDetails() { #region UserDetails try { var userList = new AspNetUserViewModel(); userList.Users = new List <AspUser>(); var appUser = new List <UserProfile>(); appUser = _IUserProfileRepository.GetUserProfilesbyOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString())).OrderBy(sort => sort.FirstName).ToList(); foreach (var user in appUser.ToList()) { UserSubscription userSubscription = _IUserSubscriptionRepository.GetUserSubscriptionByUserID(user.UserGUID); GlobalUser _globalUser = _IGlobalUserRepository.GetGlobalUserByID(user.UserGUID); string Regionname = string.Empty; string Territoryname = string.Empty; string Groupname = string.Empty; string userType = string.Empty; if (_globalUser != null) { OrganizationUsersMap _orgUserMap = _IOrganizationRepository.GetOrganizationUserMapByUserGUID(user.UserGUID); if (_orgUserMap != null && _orgUserMap.RegionGUID != null) { Regionname = _IRegionRepository.GetRegionNameByRegionGUID(new Guid(_orgUserMap.RegionGUID.ToString())); } else { Regionname = ""; } if (_orgUserMap != null && _orgUserMap.TerritoryGUID != null) { Territoryname = _ITerritoryRepository.GetTerritoryNameByTerritoryGUID(new Guid(_orgUserMap.TerritoryGUID.ToString())); } else { Territoryname = ""; } //Regionname = _IRegionRepository.GetRegionNameByRegionGUID(new Guid(_IOrganizationRepository.GetOrganizationUserMapByUserGUID(user.UserGUID).RegionGUID.ToString())); //Territoryname = _ITerritoryRepository.GetTerritoryNameByTerritoryGUID(new Guid(_IOrganizationRepository.GetOrganizationUserMapByUserGUID(user.UserGUID).TerritoryGUID.ToString())); userType = _IGlobalUserRepository.GetUserTypeByRoleID(_globalUser.Role_Id); } string UserTypeName = _IGlobalUserRepository.GetUserRoleName(user.UserGUID); if (userSubscription != null) { userList.Users.Add(new AspUser { UserTypeName = UserTypeName, RegionName = Regionname, TerritoryName = Territoryname, GroupName = Groupname, OrganizationSubscriptionGUID = userSubscription.OrganizationSubscriptionGUID.ToString(), UserType = userType, IsActive = userSubscription.IsActive, SubscriptionGUID = userSubscription.UserSubscriptionGUID.ToString(), FirstName = user.FirstName, LastName = user.LastName, Id = user.UserGUID.ToString(), EmailID = user.EmailID, MobilePhone = user.MobilePhone, City = user.City, State = user.State, Country = user.Country }); } } OrganizationSubscription orgSubscription = new OrganizationSubscription(); if (Session["UserType"] != null && Session["UserType"].ToString() != "WIM_A") { orgSubscription = _IOrganizationSubscriptionRepository.GetOrganizationSubscriptionByOrgID(new Guid(Session["OrganizationGUID"].ToString())); if (orgSubscription != null) { ViewBag.EnableCreateUserButton = "true"; } else { ViewBag.EnableCreateUserButton = "false"; } //if (orgSubscription != null && orgSubscription.SubscriptionPurchased > orgSubscription.SubscriptionConsumed) //{ // ViewBag.EnableCreateUserButton = "true"; //} //else //{ // ViewBag.EnableCreateUserButton = "false"; //} } else { ViewBag.EnableCreateUserButton = "false"; } return(userList); } catch (Exception ex) { Logger.Error(ex.Message); return(null); } #endregion }
// GET api/<controller>/5 public async Task <HttpResponseMessage> Get(string id) { HttpResponseMessage result = new HttpResponseMessage(); List <KeyValuePair <string, string> > queryString = Request.GetQueryNameValuePairs().ToList(); string objectId = queryString.FirstOrDefault(q => q.Key == "objectId").Value; string email = queryString.FirstOrDefault(q => q.Key == "email").Value; string firstName = queryString.FirstOrDefault(q => q.Key == "firstName").Value; string lastName = queryString.FirstOrDefault(q => q.Key == "lastName").Value; if (string.IsNullOrEmpty(id) || string.IsNullOrEmpty(objectId) || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(firstName) || string.IsNullOrEmpty(lastName)) { result.StatusCode = HttpStatusCode.BadRequest; result.Content = new StringContent("Please pass an id, objectId, email, firstName, and lastName on the querystring"); } else { string partitionKey = id.Substring(0, 1).ToLower(); OrganizationSubscription subscription = await _registrationService.GetOrganizationSubscription(partitionKey, id); if (subscription == null) { // Create Azure AD Application Registration for the Organization Guid uniqueId = Guid.NewGuid(); Application application = new Application(); application.DisplayName = $"AAD - {id} Client Application"; application.IdentifierUris = new List <string>(); application.IdentifierUris.Add($"https://{ConfigurationManager.AppSettings["TENANT"]}/{uniqueId}"); application.PasswordCredentials = new List <PasswordCredential>(); var startDate = DateTime.Now; Byte[] bytes = new Byte[32]; using (var rand = System.Security.Cryptography.RandomNumberGenerator.Create()) { rand.GetBytes(bytes); } string clientSecret = Convert.ToBase64String(bytes); application.PasswordCredentials.Add(new PasswordCredential() { CustomKeyIdentifier = null, StartDate = startDate, EndDate = new DateTime(2299, 12, 31, 5, 0, 0, 0), KeyId = Guid.NewGuid(), Value = clientSecret }); application.RequiredResourceAccess = new List <RequiredResourceAccess>(); RequiredResourceAccess graphResourceAccess = new RequiredResourceAccess() { ResourceAccess = new List <ResourceAccess>(), ResourceAppId = "00000003-0000-0000-c000-000000000000" }; graphResourceAccess.ResourceAccess.Add(new ResourceAccess() { Id = new Guid("37f7f235-527c-4136-accd-4a02d197296e"), Type = "Scope" }); graphResourceAccess.ResourceAccess.Add(new ResourceAccess() { Id = new Guid("7427e0e9-2fba-42fe-b0c0-848c9e6a8182"), Type = "Scope" }); RequiredResourceAccess apimResourceAccess = new RequiredResourceAccess() { ResourceAccess = new List <ResourceAccess>(), ResourceAppId = "30fe3279-fbb4-4a13-b1f8-7c5f2ea9e6df" }; apimResourceAccess.ResourceAccess.Add(new ResourceAccess() { Id = new Guid("f9bcce35-145a-4199-bf1b-948467774061"), Type = "Role" }); application.RequiredResourceAccess.Add(graphResourceAccess); application.RequiredResourceAccess.Add(apimResourceAccess); application.ReplyUrls = new List <string>(); application.ReplyUrls.Add($"msapp://{uniqueId}"); string clientId = await _appService.Create(application); // Create APIM subscription key for the organization Guid primaryKey = Guid.NewGuid(); Guid secondaryKey = Guid.NewGuid(); APIMSubscription apimSubscription = await _subscriptionService.CreateOrgSubscription($"APIM {id} Subscription", "/products/starter", primaryKey, secondaryKey, $"{id}@{_orgEmailDomain}", id, id); // Store subscription information in Table Storage OrganizationSubscription organizationSubscription = new OrganizationSubscription() { Organization = id, PrimarySubscriptionKey = apimSubscription.properties.primaryKey, SecondarySubscriptionKey = apimSubscription.properties.secondaryKey, Scope = apimSubscription.properties.scope, ClientId = clientId, ClientSecret = clientSecret }; OrganizationEntity organizationEntity = new OrganizationEntity(organizationSubscription); await _registrationService.CreateOrganizationSubscription(organizationEntity); // Create pending APIM subscription for the user APIMSubscription apimUserSubscription = await _subscriptionService.CreateSubscription($"APIM {id} Subscription", "/products/starter", Guid.NewGuid(), Guid.NewGuid(), objectId, email, firstName, lastName); // No user subscriptions have been approved yet so return masked values ResponseContent responseContent = new ResponseContent { version = "1.0.0", status = (int)HttpStatusCode.OK, organization = id, primarySubscriptionKey = MASKED_VALUE, secondarySubscriptionKey = MASKED_VALUE, clientId = MASKED_VALUE, clientSecret = MASKED_VALUE }; result.StatusCode = HttpStatusCode.OK; result.Content = new StringContent(JsonConvert.SerializeObject(responseContent), Encoding.UTF8, "application/json"); } else { string state = string.Empty; bool userHasSubscription = false; UserSubscriptions userSubscriptions = await _subscriptionService.GetUserSubscriptions(email); if (userSubscriptions != null && userSubscriptions.count > 0) { foreach (UserSubscription userSubscription in userSubscriptions.value) { if (userSubscription.properties.scope.EndsWith(subscription.Scope, StringComparison.InvariantCultureIgnoreCase)) { state = userSubscription.properties.state; userHasSubscription = true; break; } } } if (!userHasSubscription) { APIMSubscription apimSubscription = await _subscriptionService.CreateSubscription($"APIM {id} Subscription", "/products/starter", Guid.NewGuid(), Guid.NewGuid(), objectId, email, firstName, lastName); state = apimSubscription.properties.state; } ResponseContent responseContent = null; if (state == "active") // User has an approved subscription - share the organization values { responseContent = new ResponseContent { version = "1.0.0", status = (int)HttpStatusCode.OK, organization = id, primarySubscriptionKey = subscription.PrimarySubscriptionKey, secondarySubscriptionKey = subscription.SecondarySubscriptionKey, clientId = subscription.ClientId, clientSecret = subscription.ClientSecret }; } else // User has a pending subscription - return masked values { responseContent = new ResponseContent { version = "1.0.0", status = (int)HttpStatusCode.OK, organization = id, primarySubscriptionKey = MASKED_VALUE, secondarySubscriptionKey = MASKED_VALUE, clientId = MASKED_VALUE, clientSecret = MASKED_VALUE }; } result.StatusCode = HttpStatusCode.OK; result.Content = new StringContent(JsonConvert.SerializeObject(responseContent), Encoding.UTF8, "application/json"); } } return(result); }