/// <summary> /// Generates a report of a specific site's information /// </summary> /// <param name="siteId">The site to generate a report of</param> /// <returns>Json value containing all information pertaining to specific site</returns> private JsonResult SiteInfo(int siteId) { using (var context = new Data.ApplicationDbContext()) { Models.Site dbSite = context.Sites.AsNoTracking().FirstOrDefault(s => s.SiteId == siteId); if (dbSite == null) { return(Json(new { status_code = 1, status = "Site '" + siteId + "' does not exist." })); } //#if LOCAL // using (MySqlConnection conn = new MySqlConnection(Startup.Configuration.GetConnectionString("LocalDatabase"))) { //#else // using (MySqlConnection conn = new MySqlConnection(Startup.Configuration.GetConnectionString("Database"))) { //#endif // conn.Open(); // MySqlCommand cmd = new MySqlCommand(""); // using (var reader = cmd.ExecuteReader()) { // while (reader.Read()) { // } // } // } Models.Activation activation = context.Activations.AsNoTracking().FirstOrDefault(a => a.SiteId == siteId);; Models.System system = context.Systems.AsNoTracking().FirstOrDefault(sys => sys.Id == dbSite.SystemId); return(Json(new { status_code = 0, site = dbSite, activation, system })); } }
public async Task <Response> Activate(Models.Activation model) { Rest restService = new Rest(); Response response = await restService.PostAsync("CardActivations", model); return(response); }
/// <summary>Gets a specific activation</summary> /// <param name="formId"></param> /// <returns></returns> private JsonResult GetActivation(int formId) { using (var context = new Data.ApplicationDbContext()) { // Verify user exists & has permission String authUserId = User.GetClaim(OpenIdConnectConstants.Claims.Subject); Models.User authUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id.ToString().Equals(authUserId)); if (authUser == null) { return(Json(new { status_code = 2, status = "User '" + authUserId + "' does not exist" })); } if (!Helpers.PermissionChecker.IsTechOrAdmin(authUser) && !Helpers.PermissionChecker.IsBillingDepartment(authUser)) { return(Json(new { status_code = 1, status = "User '" + authUser.UserName + "' does not have permission to view activations" })); } // Verify activation form exists, and if so, return form Models.Activation activation = context.Activations.AsNoTracking().FirstOrDefault(a => a.ActivationId == formId); if (activation == null) { return(Json(new { status_code = 2, status = "Activation '" + formId + "' does not exist" })); } return(Json(new { status_code = 0, activation })); } }
private async void Activate_Clicked(object sender, EventArgs e) { string qrstring = null; if (CrossConnectivity.Current.IsConnected) { try { this.InputTransparent = true; UserDialogs.Instance.ShowLoading("Activating Card", MaskType.None); var model = new Models.Activation { CardNumber = cnumber.Text, PhoneNumber = cphone.Text, AgentId = Application.Current.Properties.ContainsKey("Id") ? (int)Application.Current.Properties["Id"] : 0, ActivationDate = DateTime.Now }; var activationService = new Services.Activation(); Response response = await activationService.Activate(model); if (!response.IsSuccessStatusCode) { this.InputTransparent = false; await UserDialogs.Instance.AlertAsync("An error occured"); UserDialogs.Instance.HideLoading(); } else { this.InputTransparent = false; cnumber.Text = null; cphone.Text = null; await UserDialogs.Instance.AlertAsync("Card activated successfully"); UserDialogs.Instance.HideLoading(); } } catch (Exception ee) { this.InputTransparent = false; UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("There was an error executing your request"); } } else { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("You are not connected to the internet"); } }
public JsonResult Delete(int formId) { using (var context = new Data.ApplicationDbContext()) { String authUserId = User.GetClaim(OpenIdConnectConstants.Claims.Subject); Models.User authUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id.ToString().Equals(authUserId)); if (authUser == null) { return(Json(new { status_code = 2, status = "User '" + authUserId + "' does not exist" })); } if (!Helpers.PermissionChecker.CanDeleteSite(authUser)) { return(Json(new { status_code = 1, status = "User '" + authUser.UserName + "' does not have permission to delete site(s)" })); } Models.Activation activation = context.Activations.FirstOrDefault(a => a.ActivationId == formId); if (activation == null) { return(Json(new { status_code = 2, status = "Activation with ID '" + formId + "' does not exist" })); } int siteId = activation.SiteId; context.Activations.Remove(activation); bool deletedSite = false; string siteName = ""; List <Models.Activation> activations = context.Activations.AsNoTracking().Where(a => a.SiteId == siteId).ToList(); if (activations.Count == 0) { Models.Site site = context.Sites.FirstOrDefault(s => s.SiteId == siteId); siteName = site.SiteName; context.Sites.Remove(site); deletedSite = true; } context.SaveChanges(); Helpers.LogHelper.LogAction(Models.Log.ActionType.DeleteActivation, authUser.Id, formId, String.Format("{0} (id: {1}) deleted activation '{2}'", authUser.UserName, authUser.Id, formId)); if (deletedSite) { Helpers.LogHelper.LogAction(Models.Log.ActionType.DeleteSite, authUser.Id, formId, String.Format("{0} (id: {1}) deleted site '{2}'", authUser.UserName, authUser.Id, siteName)); } } return(Json(new { status_code = 0 })); }
public JsonResult ApproveSite([FromBody] Models.Activation form) { using (var context = new Data.ApplicationDbContext()) { // Verify user exists & has permission to approve site String authUserId = User.GetClaim(OpenIdConnectConstants.Claims.Subject); Models.User authUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id.ToString().Equals(authUserId)); if (authUser == null) { return(Json(new { status_code = 2, status = "User '" + authUserId + "' does not exist" })); } if (!Helpers.PermissionChecker.IsBillingDepartment(authUser) && authUser.Level != 10) { return(Json(new { status_code = 1, status = "User '" + authUser.UserName + "' does not have permission to approve site" })); } // Verify site exists & has an activation form Models.Site site = context.Sites.AsNoTracking().FirstOrDefault(s => s.SiteId == form.SiteId); if (site == null) { return(Json(new { status_code = 2, status = "Site for activation form '" + form.ActivationId + "' does not exist (did someone delete it?)" })); } Models.Activation activation = context.Activations.FirstOrDefault(a => a.SiteId == form.SiteId && a.ActivationId == form.ActivationId); if (activation == null) { return(Json(new { status_code = 2, status = "Activation form '" + form.ActivationId + "' for site '" + form.SiteId + "' does not exist" })); } // Verify site has not already been approved by someone else (this shouldn't normally happen, but never hurts to check) Models.User approver = context.Users.AsNoTracking().FirstOrDefault(u => u.Id == (int)activation.ApprovedBy); if (activation.ApprovedBy.HasValue) { // note: may error if a user approves a site then later gets deleted and someone tries to approve the same site again return(Json(new { status_code = 11, status = "Site already approved by '" + (approver != null ? approver.UserName : activation.ApprovedBy.ToString()) + "'", approver = new { approver.FName, approver.LName, name = approver.FName + " " + approver.LName, approver.Id } })); } // Set site to be approved, as well as additional info approver = authUser; activation.ApprovedBy = authUser.Id; activation.ApprovalNotes = form.ApprovalNotes; site.SiteGuid = form.Key; context.SaveChanges(); // Info to send to Zapier var json = new { Approver = new { approver.Id, approver.UserName, approver.FName, approver.LName, approver.Phone, approver.Email }, Activation = activation }; // Log site being approved and send json object to Zapier Helpers.LogHelper.LogAction(Models.Log.ActionType.ApproveSite, authUser.Id, form.SiteId, String.Format("{0} (id: {1}) approved site {2}'s (site number: {3}) activation", authUser.UserName, authUser.Id, site.SiteName, site.SiteNumber)); Helpers.LogHelper.NotifyAction(Models.Log.ActionType.ApproveSite, json); return(Json(new { status_code = 0 })); } }