public IHttpActionResult Get(string local = null, DateTime?min_date = null, DateTime?max_date = null, bool show_success_records = false, int?page = 0, int?pageSize = 25) { int currentPage = page.Value; int currentPageSize = pageSize.Value; IEnumerable <EMemberRegistration> mbrs = EMemberRegistrationRepository.GetAll(); if (this.TokenId.IsSuperAdmin && local != null) { mbrs = mbrs.Where(u => u.LocalNumber == local); } if (!this.TokenId.IsSuperAdmin) { mbrs = mbrs.Where(u => u.LocalNumber == this.TokenId.LocalNumber); } if (min_date != null) { mbrs = mbrs.Where(e => e.CreatedOn >= min_date.Value); } if (max_date != null) { mbrs = mbrs.Where(e => e.CreatedOn <= max_date.Value); } if (min_date == null && max_date == null) { if (!show_success_records) { mbrs = mbrs.Where(e => !e.Success_Flag); } } var mbrList = mbrs.OrderByDescending(u => u.CreatedOn).Skip(currentPage * currentPageSize).Take(currentPageSize).ToList(); var mbrsCount = mbrs; int totalCount = mbrsCount.Count(); IEnumerable <EMemberRegistrationModel> mbrVMs = Mapper.Map <IEnumerable <EMemberRegistration>, IEnumerable <EMemberRegistrationModel> >(mbrList); PaginationSet <EMemberRegistrationModel> pagedSet = new PaginationSet <EMemberRegistrationModel>() { Page = currentPage, TotalCount = totalCount, TotalPages = (int)Math.Ceiling((decimal)totalCount / currentPageSize), Items = mbrVMs }; return(Ok(pagedSet)); }
// GET: EMemberRegistrations public async Task <ActionResult> Index() { logger.Info("Registration List Called"); IQueryable <EMemberRegistration> mbrs = EMemberRegistrationRepository.GetAll(); if (!this.TokenId.IsSuperAdmin) { mbrs = mbrs.Where(u => u.LocalNumber == this.TokenId.LocalNumber); } mbrs = mbrs.Where(e => !e.Success_Flag); var mbrList = await mbrs.OrderByDescending(u => u.CreatedOn).ToListAsync(); IEnumerable <EMemberRegistrationViewModel> mbrVMs = Mapper.Map <IEnumerable <EMemberRegistration>, IEnumerable <EMemberRegistrationViewModel> >(mbrList); HelperFunctions.FindTimssId(mbrVMs); ViewData["DuesCardsPath"] = LocalSettingsConfig.LocalSettings.DuesCardsPath; return(View(mbrVMs)); }
public ActionResult GetPendingCardsReport() { IQueryable <EMemberRegistration> mbrs = EMemberRegistrationRepository.GetAll(); if (!this.TokenId.IsSuperAdmin) { mbrs = mbrs.Where(u => u.LocalNumber == this.TokenId.LocalNumber); } mbrs = mbrs.Where(e => !e.Success_Flag); var mbrList = mbrs.OrderByDescending(u => u.CreatedOn).ToList(); IEnumerable <EMemberRegistrationViewModel> mbrVMs = Mapper.Map <IEnumerable <EMemberRegistration>, IEnumerable <EMemberRegistrationViewModel> >(mbrList); HelperFunctions.FindTimssId(mbrVMs); string fileName = "L" + LocalSettingsConfig.LocalSettings.LocalNumber + "_PendingCards" + DateTime.UtcNow.ToString("_yyyymmdd_HHmmssfff"); fileName = HelperFunctions.PrepareExcelFile(mbrVMs, fileName); return(File(fileName, "text/csv", Path.GetFileName(fileName))); }
public IHttpActionResult Get(string uuid) { if (string.IsNullOrEmpty(uuid)) { throw new ArgumentNullException(nameof(uuid)); } var id = uuid; var mbr = EMemberRegistrationRepository.GetSingle(id); if (mbr == null) { return(BadRequest("Member Not Found")); } if (!this.TokenId.IsSuperAdmin && this.TokenId.LocalNumber != mbr.LocalNumber) { return(BadRequest("Insufficient permissions to view eMember Registrations of other locals.")); } var model = Mapper.Map <EMemberRegistrationModel>(mbr); return(Ok(model)); }
//private void FindTimssId(IEnumerable<EMemberRegistrationViewModel> mbrList) { // foreach(var mbr in mbrList) { // var timssId = TimssData.GetMemberId(mbr.Ssn); // mbr.IsNewMember = timssId == string.Empty ? true : false; // } //} public async Task <ActionResult> History(string local = null, DateTime?min_date = null, DateTime?max_date = null, string searchFilter = null, int?page = 0, int?pageSize = 20, bool?includeDiscarded = true) { int currentPage = page.Value; int currentPageSize = pageSize.Value; if (currentPage == 0) { currentPage = 1; } ViewBag.CurrentFilter = searchFilter; ViewBag.MinDate = min_date; ViewBag.MaxDate = max_date; ViewBag.IncludeDiscarded = includeDiscarded; IQueryable <EMemberRegistration> mbrs = EMemberRegistrationRepository.GetAll(); if (this.TokenId.IsSuperAdmin && local != null) { mbrs = mbrs.Where(u => u.LocalNumber == local); } if (!this.TokenId.IsSuperAdmin) { mbrs = mbrs.Where(u => u.LocalNumber == this.TokenId.LocalNumber); } if (min_date != null) { mbrs = mbrs.Where(e => e.CreatedOn >= min_date.Value); } if (max_date != null) { mbrs = mbrs.Where(e => e.CreatedOn <= max_date.Value); } if (searchFilter != null) { var values = searchFilter.Split(' '); if (values.Length > 1 && values[0].Trim().Length > 0 && values[1].Trim().Length > 0) { //Search is by Name string firstPart = values[0].Trim(); string secondPart = values[1].Trim(); mbrs = mbrs.Where(m => (m.First_Name.StartsWith(firstPart) && m.Last_Name.StartsWith(secondPart)) || (m.Last_Name.StartsWith(firstPart) && m.First_Name.StartsWith(secondPart))); } else { mbrs = mbrs.Where(m => m.Last_Name.Contains(searchFilter) || m.First_Name.Contains(searchFilter) || m.Ssn.Replace("-", "").Contains(searchFilter) || m.Member_Union_Id.Contains(searchFilter)); } } mbrs = mbrs.Where(e => e.Success_Flag); if (includeDiscarded.HasValue && includeDiscarded.Value == false) { mbrs = mbrs.Where(e => e.Processed_Flag); // Skips the DISCARDED records } var mbrList = await mbrs.OrderByDescending(u => u.Processed_Date).ToListAsync(); var mbrVMs = Mapper.Map <IEnumerable <EMemberRegistration>, IEnumerable <EMemberRegistrationViewModel> >(mbrList); return(View(mbrVMs.ToPagedList(currentPage, currentPageSize))); }
public async Task <ActionResult> Edit([Bind(Include = "Id,Position,Member_Union_Id, Mbr_Level1, Mbr_Level2, Mbr_Level3, Mbr_Type, Employer_Name, UpdateName, UpdateAddress, UpdateHouse, UpdatePhone, UpdateEmail, Department, Section, Craft, FullPartTime, Notes, TipActionCode, Validated_Flag, Validation_Status, Notes, Discard_Reason")] EMemberRegistration eMemberRegistration, string command) { //Set Labels for MBR_LEVEL1, MBR_LEVEL2, MBR_LEVEL3 ViewData["MBR_LEVEL1"] = (string)System.Web.HttpContext.Current.Application["MBR_LEVEL1"]; ViewData["MBR_LEVEL2"] = (string)System.Web.HttpContext.Current.Application["MBR_LEVEL2"]; ViewData["MBR_LEVEL3"] = (string)System.Web.HttpContext.Current.Application["MBR_LEVEL3"]; // Dropdown lists ViewBag.MbrTypeCodes = (IEnumerable <SelectListItem>)System.Web.HttpContext.Current.Application["MBR_TYPE_CODES"]; ViewBag.Mbrlevel1Codes = (IEnumerable <SelectListItem>)System.Web.HttpContext.Current.Application["MBRLEVEL1_CODES"]; ViewBag.Mbrlevel2Codes = (IEnumerable <SelectListItem>)System.Web.HttpContext.Current.Application["MBRLEVEL2_CODES"]; ViewBag.Mbrlevel3Codes = (IEnumerable <SelectListItem>)System.Web.HttpContext.Current.Application["MBRLEVEL3_CODES"]; ViewBag.DepartmentCodes = (IEnumerable <SelectListItem>)System.Web.HttpContext.Current.Session["DEPT_CODES"]; ViewBag.SectionCodes = (IEnumerable <SelectListItem>)System.Web.HttpContext.Current.Application["DEM_SECTION_CODES"]; ViewBag.CraftCodes = (IEnumerable <SelectListItem>)System.Web.HttpContext.Current.Application["CRAFT_CODES"]; ViewBag.FullPartTimeCodes = (IEnumerable <SelectListItem>)System.Web.HttpContext.Current.Application["DEMFULLPART_CODES"]; ViewBag.DiscardReasonCodes = (IEnumerable <SelectListItem>)System.Web.HttpContext.Current.Application["DISCARDREASON_CODES"]; // if (ModelState.IsValid) { EMemberRegistration dbRecord = await db.EMemberRegistration.FindAsync(eMemberRegistration.Id); if (dbRecord == null) { return(HttpNotFound()); } logger.Info(" \t\t\t\t\t" + dbRecord.Last_Name + " " + dbRecord.First_Name + " record fetched from DB."); HandleMissingPdfFile(dbRecord); dbRecord.Validated_Flag = eMemberRegistration.Validated_Flag; dbRecord.Validation_Status = eMemberRegistration.Validation_Status; dbRecord.Notes = eMemberRegistration.Notes; dbRecord.Processed_Date = DateTime.Now; try { if (command == "Discard") { logger.Info(" \t\t\tDISCARD clicked."); dbRecord.Success_Flag = true; dbRecord.Processed_Flag = false; dbRecord.Processed_Status = "DISCARDED"; //await db.SaveChangesAsync(); EMemberRegistrationRepository.Edit(dbRecord); DbContext.Commit(); return(RedirectToAction("Index")); } else if (command == "Hold") { logger.Info(" \t\t\tHOLD clicked."); dbRecord.Success_Flag = false; dbRecord.Processed_Flag = false; dbRecord.Processed_Status = "HOLD"; //await db.SaveChangesAsync(); EMemberRegistrationRepository.Edit(dbRecord); DbContext.Commit(); return(RedirectToAction("Index")); } else if (command == "Confirm Manual") { logger.Info(" \t\t\tMANUAL clicked."); dbRecord.Success_Flag = true; dbRecord.Processed_Flag = true; dbRecord.Processed_Status = "MANUAL Attachment"; if (eMemberRegistration.Member_Union_Id != null && eMemberRegistration.Member_Union_Id.Length >= 1) { dbRecord.Processed_Status += " - " + eMemberRegistration.Member_Union_Id; } //await db.SaveChangesAsync(); EMemberRegistrationRepository.Edit(dbRecord); DbContext.Commit(); return(RedirectToAction("Index")); } else //Save { logger.Info(" \t\t\tPROCESS clicked."); logger.Info(" \t\t\t\t\t Started processing record."); var localPrefix = (string)System.Web.HttpContext.Current.Application["LOCAL_PREFIX"]; dbRecord.Member_Union_Id = eMemberRegistration.Member_Union_Id; dbRecord.Position = eMemberRegistration.Position; dbRecord.Mbr_Level1 = eMemberRegistration.Mbr_Level1; dbRecord.Mbr_Level2 = eMemberRegistration.Mbr_Level2; dbRecord.Mbr_Level3 = eMemberRegistration.Mbr_Level3; dbRecord.Mbr_Type = eMemberRegistration.Mbr_Type; dbRecord.Employer_Name = eMemberRegistration.Employer_Name; dbRecord.UpdateAddress = eMemberRegistration.UpdateAddress; dbRecord.UpdateName = eMemberRegistration.UpdateName; dbRecord.UpdateHouse = eMemberRegistration.UpdateHouse; dbRecord.Department = eMemberRegistration.Department; dbRecord.Section = eMemberRegistration.Section; dbRecord.Craft = eMemberRegistration.Craft; dbRecord.FullPartTime = eMemberRegistration.FullPartTime; dbRecord.Notes = eMemberRegistration.Notes; dbRecord.TipActionCode = eMemberRegistration.TipActionCode; dbRecord.Processed_Status = string.Empty; // Save the user entered values for later issue debugging purposes db.Entry(dbRecord).State = EntityState.Modified; EMemberRegistrationRepository.Edit(dbRecord); DbContext.Commit(); logger.Info(" \t\t\t\t\t\t Current user selections saved in DB."); string pdfFilePath = Path.Combine(LocalSettingsConfig.LocalSettings.DuesCardsPath, dbRecord.Dues_Card_File_Name); string duesCardPath = (string)System.Web.HttpContext.Current.Application["DUES_CARD_IMAGE_LOCATION"]; var duesCardFile = Path.Combine(duesCardPath, dbRecord.Ssn.Replace("-", "") + ".pdf"); if (eMemberRegistration.Member_Union_Id != null && eMemberRegistration.Member_Union_Id.Length >= 1) { // Existing Member logger.Info(" \t\t\t\t\t\t Existing Member(" + dbRecord.Member_Union_Id + ") - Going to update in TIMSS"); // Validate TIP Action choice if (dbRecord.Tip_Opt_In_Flag && string.IsNullOrEmpty(eMemberRegistration.TipActionCode)) { eMemberRegistration.Validation_Status = "Please chose appropriate action for TIP data!"; logger.Info(" \t\t\t\t\t TIP Action is not selected."); ModelState.AddModelError("", "TIP Action is not selected."); return(View(eMemberRegistration)); } TimssData.UpdateMember(dbRecord, duesCardFile); dbRecord.Processed_Status = "Existing Member(" + dbRecord.Member_Union_Id + ") - Updated DuesCard"; if (dbRecord.Tip_Opt_In_Flag && dbRecord.Tip_Contribution > 0 && (dbRecord.TipActionCode.ToUpper().Equals("ADD") || dbRecord.TipActionCode.ToUpper().Equals("UPDATE"))) { dbRecord.Processed_Status += " and TIP fields"; } else { dbRecord.Processed_Status += ", but no TIP info is uploaded"; } dbRecord.Processed_Status += "!"; dbRecord.Processed_Flag = true; dbRecord.Processed_Date = DateTime.Now; } else { //New Member logger.Info(" \t\t\t\t\t\t New Member - Going to create member in TIMSS"); bool isValidData = true; if (string.IsNullOrEmpty(eMemberRegistration.Mbr_Type)) { ModelState.AddModelError("", "Member Type should be selected."); isValidData = false; } if (string.IsNullOrEmpty(eMemberRegistration.Mbr_Level1)) { ModelState.AddModelError("", (string)System.Web.HttpContext.Current.Application["MBR_LEVEL1"] + " should be selected."); isValidData = false; } if (string.IsNullOrEmpty(eMemberRegistration.Mbr_Level2)) { ModelState.AddModelError("", (string)System.Web.HttpContext.Current.Application["MBR_LEVEL2"] + " should be selected."); isValidData = false; } if (string.IsNullOrEmpty(eMemberRegistration.Mbr_Level3)) { ModelState.AddModelError("", (string)System.Web.HttpContext.Current.Application["MBR_LEVEL3"] + " should be selected."); isValidData = false; } if (isValidData) { dbRecord.Member_Union_Id = TimssData.CreateNewMember(dbRecord, localPrefix, duesCardFile); dbRecord.Processed_Status = "New Member(" + dbRecord.Member_Union_Id + ") "; dbRecord.Processed_Flag = true; dbRecord.Processed_Date = DateTime.Now; } else { return(View(eMemberRegistration)); } } db.Entry(dbRecord).State = EntityState.Modified; if (dbRecord.Member_Union_Id != null && dbRecord.Member_Union_Id.Length >= 1) { logger.Info(" \t\t\t\t\t\t Success in TIMSS"); dbRecord.Success_Flag = true; EMemberRegistrationRepository.Edit(dbRecord); DbContext.Commit(); //Move the Pdf file to SUCCESSFUL Location DirectoryInfo dir = new DirectoryInfo(Server.MapPath("~/DuesCardFiles_Success")); if (!dir.Exists) { dir.Create(); } System.IO.File.Move(pdfFilePath, Path.Combine(Server.MapPath("~/DuesCardFiles_Success"), dbRecord.Dues_Card_File_Name)); return(RedirectToAction("Index")); } else { logger.Info(" \t\t\t\t\t\t Could not process due to validation errors!"); //eMemberRegistration.Validation_Status = "Could not process the record. Please contact Miki Foster."; //dbRecord.Processed_Status = "Could not process the record. Please contact Miki Foster."; //await db.SaveChangesAsync(); //EMemberRegistrationRepository.Edit(dbRecord); //DbContext.Commit(); } } } catch (Exception ex) { logger.Error("\t\t Exception: {0}\t\t\t{1} \n", ex.Message, ex.StackTrace); //throw (ex); string errMsg = string.Empty; if (ex.Message.Contains("Error while moving old dues card file")) { errMsg = "E404 - Mapped drive where Dues Cards are stored is not accessible. Check permissions on " + LocalSettingsConfig.LocalSettings.TimssDuesCardsPath; //eMemberRegistration.Validation_Status = errMsg + ". Please contact Miki Foster."; dbRecord.Processed_Status = errMsg + ". Please contact Miki Foster."; errLogger.Error("while processing {0} {1}:\t{2} \n", dbRecord.First_Name, dbRecord.Last_Name, errMsg); } else if (ex.Message.Contains("Missing Membership info in TIMSS")) { errMsg = "E301 - Member info is missing in TIMSS! Please enter the missing member info first in TIMSS for member " + dbRecord.Member_Union_Id; //eMemberRegistration.Validation_Status = "Member info is missing in TIMSS! Please enter the missing member info first in TIMSS."; dbRecord.Processed_Status = errMsg; errLogger.Error("while processing {0} {1}:\t{2} \n", dbRecord.First_Name, dbRecord.Last_Name, errMsg); } else if (ex.Message.Contains("Error while updating Member Record")) { errMsg = "E504 - Unknown error while updating the member " + dbRecord.Member_Union_Id + " in TIMSS! Please enter Helpdesk ticket. "; //eMemberRegistration.Validation_Status = "Member info is missing in TIMSS! Please enter the missing member info first in TIMSS."; dbRecord.Processed_Status = errMsg; errLogger.Error("while processing {0} {1}:\t{2} \n", dbRecord.First_Name, dbRecord.Last_Name, errMsg); } else if (ex.Message.Contains("ORA-")) { errMsg = "E500 - Oracle error " + ex.Message.Substring(ex.Message.IndexOf("ORA-"), ex.Message.IndexOf("at OracleInternal") - ex.Message.IndexOf("ORA-")); errMsg = errMsg.Replace("\"", ""); //eMemberRegistration.Validation_Status = errMsg + ". Please contact Miki Foster."; dbRecord.Processed_Status = errMsg + ". Please enter Helpdesk ticket and contact Miki Foster."; errLogger.Error("while processing {0} {1}:\t{2}. Contact development team. \n", dbRecord.First_Name, dbRecord.Last_Name, errMsg); } else if (ex.Message.Contains("Could not update Dues Card file in the database")) { errMsg = "E501 - Unknown error while updating Dues Card file in the database for member " + dbRecord.Member_Union_Id; //eMemberRegistration.Validation_Status = errMsg + ". Please contact Miki Foster."; dbRecord.Processed_Status = errMsg + ". Please enter Helpdesk ticket and contact Miki Foster."; errLogger.Error("while processing {0} {1}:\t{2}. Contact development team. \n", dbRecord.First_Name, dbRecord.Last_Name, errMsg); } else if (ex.Message.Contains("Error while copying old dues card file")) { errMsg = "E502 - Unknown error while copying old dues card file"; //eMemberRegistration.Validation_Status = errMsg + ". Please contact Miki Foster."; dbRecord.Processed_Status = errMsg + ". Please enter Helpdesk ticket and contact Miki Foster."; errLogger.Error("while processing {0} {1}:\t{2}. Contact development team. \n", dbRecord.First_Name, dbRecord.Last_Name, errMsg); } else if (ex.Message.Contains("Error while moving old dues card file")) { errMsg = "E503 - Unknown error while moving old dues card file"; //eMemberRegistration.Validation_Status = errMsg + ". Please contact Miki Foster."; dbRecord.Processed_Status = errMsg + ". Please enter Helpdesk ticket and contact Miki Foster."; errLogger.Error("while processing {0} {1}:\t{2}. Contact development team. \n", dbRecord.First_Name, dbRecord.Last_Name, errMsg); } else { //eMemberRegistration.Validation_Status = "E505 - Unknown Error: Could not process the record due to unknown error. Please contact Miki Foster."; dbRecord.Processed_Status = "E505 - Unknown Error: Could not process the record due to unknown error. Please enter Helpdesk ticket and contact Miki Foster."; errMsg = "E505 - Unknown Error: " + ex.Message; errLogger.Error("while processing {0} {1}:\t{2}. Contact development team. \n", dbRecord.First_Name, dbRecord.Last_Name, errMsg); } //await db.SaveChangesAsync(); dbRecord.Processed_Flag = false; dbRecord.Success_Flag = false; EMemberRegistrationRepository.Edit(dbRecord); DbContext.Commit(); } eMemberRegistration = dbRecord; eMemberRegistration.Member_Union_Id = null; eMemberRegistration.Validated_Flag = true; eMemberRegistration.Validation_Status = dbRecord.Processed_Status; if (!string.IsNullOrEmpty(eMemberRegistration.Validation_Status)) { ModelState.AddModelError("", eMemberRegistration.Validation_Status); //Store Model Errors so that we can store it in DB errLogger.Error("while processing {0} {1}:\t{2} \n", eMemberRegistration.First_Name, eMemberRegistration.Last_Name, eMemberRegistration.Validation_Status); } //ValidateInTimss(eMemberRegistration); // Set Comparison Codes to display ViewData["Error"] = eMemberRegistration.Validation_Status; return(View(eMemberRegistration)); // } }
public async Task <IHttpActionResult> Post() { EMemberRegistration model = null; // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } string pdfFilePath = ConfigurationManager.AppSettings["DuesCardsPath"];//System.Web.HttpContext.Current.Server.MapPath("~/DuesCardFiles"); string root = System.Web.HttpContext.Current.Server.MapPath("~/Uploads"); DirectoryInfo dir = new DirectoryInfo(pdfFilePath); if (!dir.Exists) { dir.Create(); } dir = new DirectoryInfo(root); if (!dir.Exists) { dir.Create(); } var provider = new MultipartFormDataStreamProvider(root); try { // Read the form data. await Request.Content.ReadAsMultipartAsync(provider); if (provider.FileData.Count > 1) { return(BadRequest("Cannot provide more than one file!")); } foreach (var key in provider.FormData.AllKeys) { foreach (var val in provider.FormData.GetValues(key)) { model = JsonConvert.DeserializeObject <EMemberRegistration>(val); if (!string.IsNullOrEmpty(model.Gender)) { model.Gender = model.Gender.Substring(0, 1); } break; //Trace.WriteLine(string.Format("{0}: {1}", key, val)); } break; } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } foreach (MultipartFileData fileData in provider.FileData) { if (string.IsNullOrEmpty(fileData.Headers.ContentDisposition.FileName)) { return(BadRequest("This request is not properly formatted")); } string fileName = fileData.Headers.ContentDisposition.FileName; if (fileName.StartsWith("\"") && fileName.EndsWith("\"")) { fileName = fileName.Trim('"'); } if (fileName.Contains(@"/") || fileName.Contains(@"\")) { fileName = Path.GetFileName(fileName); } var duesCardFile = Path.Combine(pdfFilePath, fileName); File.Move(fileData.LocalFileName, duesCardFile); model.Dues_Card_File_Name = fileName; using (var fStream = File.OpenRead(duesCardFile)) { byte[] contents = new byte[fStream.Length]; fStream.Read(contents, 0, (int)fStream.Length); fStream.Close(); model.Dues_Card_Image = contents; } } } catch (System.Exception e) { return(BadRequest(e.Message)); } EMemberRegistrationRepository.Add(model); DbContext.Commit(); var viewModel = Mapper.Map <EMemberRegistrationModel>(model); //return Ok(); return(CreatedAtRoute("", new { id = viewModel.Id }, viewModel)); }