public ActionResult ForgotPassword(User_Profile user_profile) { try { using (LaxNarroEntities db = new LaxNarroEntities()) { var account = db.User_Profile.Where(a => a.EmailAddress == user_profile.EmailAddress).ToList(); //var GetUserData = (db.User_Profile.Where(a => a.EmailAddress == email).ToList()); string mailResult = ""; if (account != null) { mailResult = SendMail(account[0].EmailAddress, "~/EmailTemplate/ForgotPassword.html", account[0].FirstName, account[0].LastName, account[0].Password); } else { ViewBag.message = ToasterMessage.Message(ToastType.error, "Invalid email"); } if (mailResult == "success") { ViewBag.message = ToasterMessage.Message(ToastType.success, "Password sent, check your email"); } } } catch (Exception) { } return(View()); }
private void DeleteUnsubscribedUser(string userName) { try { using (LaxNarroEntities ctx = new LaxNarroEntities()) { DateTime dt = DateTime.Today; var plan_id = db.Plan_Master.FirstOrDefault(x => x.Plan == "Demo"); decimal planID = Convert.ToDecimal(plan_id.Plan_ID); var totalUserList = (from s in db.User_Transaction_Master join c in db.User_Profile on s.User_ID equals c.ID where s.PlanID == planID && s.End_Date <= dt && c.UserName == userName && c.IsDeleted != "Deleted" select s.User_ID).ToList(); if (totalUserList.Count > 0) { var user = ctx.User_Profile.FirstOrDefault(x => x.UserName == userName); user.IsDeleted = "Deleted"; ctx.SaveChanges(); } } } catch (Exception) { //throw; } }
private void getAllExpiredPlanUsers() { try { using (LaxNarroEntities ctx = new LaxNarroEntities()) { ExpiredPlanUserMailLog expiredPlanUserMailLog = null; DateTime dt = DateTime.Today; var expiredPlanUsers = (from s in db.User_Transaction_Master where s.End_Date <= dt select s).ToList(); for (int i = 0; i < expiredPlanUsers.Count; i++) { decimal userId = Convert.ToDecimal(expiredPlanUsers[i].User_ID); var user = ctx.User_Transaction_Master. Where(u => u.User_ID == userId) .OrderByDescending(u => u.Id).ToList(); var checkExisting = ctx.ExpiredPlanUserMailLogs.Where(x => x.UserID == userId).ToList(); if (checkExisting.Count == 0) { expiredPlanUserMailLog = new ExpiredPlanUserMailLog(); expiredPlanUserMailLog.UserID = user[0].User_ID; expiredPlanUserMailLog.ReminderType = "N/A"; expiredPlanUserMailLog.ReminderDate = null; expiredPlanUserMailLog.ReminderStatus = null; DateTime nextDueDate = Convert.ToDateTime(user[0].End_Date).AddMonths(6); expiredPlanUserMailLog.NextReminderDueDate = nextDueDate; expiredPlanUserMailLog.RecordOperationDate = dt; db.ExpiredPlanUserMailLogs.Add(expiredPlanUserMailLog); db.SaveChanges(); } } } } catch (Exception r) { //throw; } }
//[ValidateAntiForgeryToken] public ActionResult PayNow(decimal planId) { try { decimal userId = Convert.ToDecimal(UserHelper.GetUserId()); IEnumerable <Rate_Card> plan_master = from s in db.Rate_Card join b in db.Plan_Master on s.Plan_Id equals b.Plan_ID where b.Plan != "Demo" select s; ViewBag.PM = plan_master; string amount = string.Empty; string planName = plan_master.Where(x => x.Plan_Id == planId).Select(x => x.Plan_Master.Plan).First(); using (LaxNarroEntities ctx = new LaxNarroEntities()) { using (var transaction = ctx.Database.BeginTransaction()) { var userTransaction = ctx.User_Transaction_Master.FirstOrDefault(x => x.User_ID == userId); string desc = string.Empty; if (planName == "Yearly") { desc = "Lex Narro Yearly Plan Subscription."; //amount = "13.99"; amount = plan_master.Select(x => x.Amount).FirstOrDefault().ToString(); } else { desc = "Lex Narro 2 Yearly Plan Subscription."; //amount = "24.99"; amount = plan_master.Select(x => x.Amount).FirstOrDefault().ToString(); } var apiContext = GetAPIContext(); var payment = new Payment { //For Sandbox testing //experience_profile_id = "XP-3FDL-P42J-GUEG-25ZK", //For live paypal account experience_profile_id = "XP-R4X7-FQ49-PL4T-HLNR", intent = "sale", payer = new Payer { payment_method = "paypal" }, transactions = new List <Transaction> { new Transaction { description = desc, amount = new Amount { currency = "AUD", total = amount, }, item_list = new ItemList { items = new List <Item>() { new Item() { description = "Lex Narro " + planName + " plan subscription.", currency = "AUD", quantity = "1", price = amount } } } } }, redirect_urls = new RedirectUrls { return_url = Url.Action("Success", "Subscription", new { planId = planId }, Request.Url.Scheme), cancel_url = Url.Action("Cancel", "Subscription", new { planId = planId }, Request.Url.Scheme) } }; Payment createdPayment = payment.Create(apiContext); var approvalUrl = createdPayment.links .FirstOrDefault(x => x.rel.Equals("approval_url", StringComparison.OrdinalIgnoreCase)); return(Redirect(approvalUrl.href)); } } } catch (DbEntityValidationException e) { string errorMessage = string.Empty; foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); errorMessage = ve.ErrorMessage; TempData["message"] = ViewBag.message + ToasterMessage.Message(ToastType.error, errorMessage); } } return(RedirectToAction("Index")); } catch (Exception rr) { TempData["message"] = ToasterMessage.Message(ToastType.error, "Something went wrong " + rr.ToString()); } return(RedirectToAction("Index")); }
public SubscriptionController() { db = new LaxNarroEntities(); toastNotifications = new ToasterMessage(); }
public ActionResult Success(decimal planId, string payerId, string paymentId) { try { decimal userId = Convert.ToDecimal(UserHelper.GetUserId()); //-----For sending Invoice mail------ decimal recordId = 0; using (LaxNarroEntities ctx = new LaxNarroEntities()) { using (var transaction = ctx.Database.BeginTransaction()) { int?maxInvoice = ctx.User_Transaction_Master.Max(u => u.Invoice_No); Rate_Card rate_card = ctx.Rate_Card.Include(x => x.Plan_Master) .Where(m => m.Plan_Id == planId && m.Status == "Active").FirstOrDefault(); User_Transaction_Master userTransaction = new User_Transaction_Master(); IEnumerable <User_Transaction_Master> userAllTransaction = ctx.User_Transaction_Master .Where(x => x.User_ID == userId); // Set the payer for the payment var paymentExecution = new PaymentExecution() { payer_id = payerId }; // Identify the payment to execute var payment = new Payment() { id = paymentId }; var apiContext = GetAPIContext(); // Execute the Payment var executedPayment = payment.Execute(apiContext, paymentExecution); int?max = userAllTransaction.Max(u => (int?)u.Invoice_No); User_Transaction_Master maxedInvoicedTransaction = userAllTransaction .FirstOrDefault(x => x.User_ID == userId && x.Invoice_No == max); int?maxedInvoiceNo = ctx.User_Transaction_Master.Max(u => (int?)u.Invoice_No); if (executedPayment.state == "approved") { //---------For new payment record (second time payment and so on)------- if (maxedInvoicedTransaction.Payment_Status != "N/A") { userTransaction.Amount = Convert.ToDecimal(rate_card.Amount); DateTime?endDate = maxedInvoicedTransaction.End_Date; string strEndDate = string.Empty; if (endDate != null) { strEndDate = endDate.ToString(); } userTransaction.Start_Date = Convert.ToDateTime(strEndDate); if (rate_card.Plan_Master.Plan == "Yearly") { userTransaction.End_Date = userTransaction.Start_Date.AddYears(1); } else { userTransaction.End_Date = userTransaction.Start_Date.AddYears(2); } if (maxInvoice == null) { userTransaction.Invoice_No = 1; } else { userTransaction.Invoice_No = maxInvoice + 1; } userTransaction.Payment_Date = DateTime.Today; userTransaction.Payment_Method = "Online"; userTransaction.Payment_Status = "Paid"; userTransaction.Paypal_PayerId = payerId; userTransaction.PlanID = rate_card.Plan_Id; userTransaction.Rate_ID = rate_card.Rate_Id; userTransaction.Status = "Active"; userTransaction.Transaction_Status = executedPayment.state; userTransaction.Transection_ID = executedPayment.id; userTransaction.User_ID = userId; ctx.User_Transaction_Master.Add(userTransaction); ctx.SaveChanges(); recordId = userTransaction.Id; } //---------For updating the demo record (First time payment)------- else { maxedInvoicedTransaction.Amount = Convert.ToDecimal(rate_card.Amount); if (rate_card.Plan_Master.Plan == "Yearly") { maxedInvoicedTransaction.End_Date = DateTime.Today.AddYears(1); } else { maxedInvoicedTransaction.End_Date = DateTime.Today.AddYears(2); } if (maxInvoice == null) { maxedInvoicedTransaction.Invoice_No = 1; } else { maxedInvoicedTransaction.Invoice_No = maxInvoice + 1; } maxedInvoicedTransaction.Payment_Date = DateTime.Today; maxedInvoicedTransaction.Payment_Method = "Online"; maxedInvoicedTransaction.Payment_Status = "Paid"; maxedInvoicedTransaction.Paypal_PayerId = payerId; maxedInvoicedTransaction.PlanID = rate_card.Plan_Id; maxedInvoicedTransaction.Rate_ID = rate_card.Rate_Id; //DateTime? endDate = maxedInvoicedTransaction.End_Date; //string strEndDate = string.Empty; //if (endDate != null) // strEndDate = endDate.ToString(); maxedInvoicedTransaction.Start_Date = DateTime.Today; maxedInvoicedTransaction.Status = "Active"; maxedInvoicedTransaction.Transaction_Status = executedPayment.state; maxedInvoicedTransaction.Transection_ID = executedPayment.id; maxedInvoicedTransaction.User_ID = userId; ctx.Entry(maxedInvoicedTransaction).State = EntityState.Modified; ctx.SaveChanges(); recordId = maxedInvoicedTransaction.Id; } PaypalResponse paypalResponse = new PaypalResponse { user_id = userId, Paypal_ReferenceId = executedPayment.id, intent = executedPayment.intent, payer = Convert.ToString(executedPayment.payer), payee = Convert.ToString(executedPayment.payee), note_to_payer = executedPayment.note_to_payer, update_time = executedPayment.update_time, create_time = executedPayment.create_time, response_state = executedPayment.state, failure_reason = executedPayment.failure_reason }; ctx.PaypalResponses.Add(paypalResponse); ctx.SaveChanges(); transaction.Commit(); MailLog user = ctx.MailLogs.FirstOrDefault(x => x.UserID == userId); user.LastReminderStatus = "Deactive"; ctx.SaveChanges(); } Thread thread = new Thread(() => SendInvoice(recordId)); thread.Start(); User_Profile userMail = ctx.User_Profile.Where(p => p.ID == userId).FirstOrDefault(); Thread thread2 = new Thread(() => SendMail(userMail.FirstName, userMail.LastName, userMail.EmailAddress, "", "Lexnarro - Subscription Successful", "~/EmailTemplate/SubscriptionMail.html")); thread2.Start(); //SendMail(userMail.FirstName, userMail.LastName, userMail.EmailAddress, "", // "Lexnarro - Subscription Successful", "~/EmailTemplate/SubscriptionMail.html"); TempData["message"] = ToasterMessage.Message(ToastType.success, "Subscription successful. Thank you."); } } } catch (DbEntityValidationException e) { string errorMessage = string.Empty; foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); errorMessage = ve.ErrorMessage; TempData["message"] = ViewBag.message + ToasterMessage.Message(ToastType.error, errorMessage); } } } catch (Exception r) { TempData["message"] = ToasterMessage.Message(ToastType.error, "Something went wrong"); } return(RedirectToAction("Index")); }
public ReturnData DoCarryOver(string financialYear, string ids, string units, string userId, string stateId) { decimal unts = 0; string result = string.Empty; decimal user_Id = Convert.ToDecimal(userId); decimal enrolledStateId = Convert.ToDecimal(stateId); decimal?hoursRemoved = 0; decimal?unitsRemoved = 0; ReturnData rd = new ReturnData(); try { string nextFinancialYear = GetNewFinancialYear(financialYear); ids = ids.Trim('\\', '"', '[', ']'); string resultIds = ids.RemoverStrs(new[] { "\\", "\"", "[", "]" }); string resultUnits = units.RemoverStrs(new[] { "\\", "\"", "[", "]" }); string[] carryOverIds = resultIds.Split(','); string[] carryOverUnitsList = resultUnits.Split(','); using (LaxNarroEntities ctx = new LaxNarroEntities()) { using (DbContextTransaction transaction = ctx.Database.BeginTransaction()) { decimal?carryOverUnits = ctx.State_Rule3_Marriage.Include(x => x.Rule3_ID) .Where(x => x.StateID == enrolledStateId).Select(x => x.Rule3_Master.CarryOverUnits).First(); foreach (string item in carryOverUnitsList) { if (Convert.ToDecimal(item) <= 0) { //result = "Error - Please select units more then 0 (zero)"; transaction.Dispose(); rd.Status = "Error"; rd.Message = "Please select units more then 0 (Zero)"; rd.Requestkey = "DoCarryOver"; return(rd); } unts = unts + Convert.ToDecimal(item); } if (unts > carryOverUnits) { transaction.Dispose(); rd.Status = "Error"; rd.Message = "Selected units are more then the allowed units for carry over"; rd.Requestkey = "DoCarryOver"; return(rd); } //if (unts > carryOverUnits) //{ // transaction.Dispose(); // rd.Status = "Error"; // rd.Message = "Selected units are greater then allowed no. of units"; // rd.Requestkey = "DoCarryOver"; // return rd; //} for (int j = 0; j < carryOverIds.Length; j++) { decimal id = Convert.ToDecimal(carryOverIds[j]); User_Training_Transaction trainingToCreate = new User_Training_Transaction(); User_Training_Status trainingStatusToCreate = new User_Training_Status(); //Getting old records to update after carry over and creating new carried over records with same values as before //User_Training_Transaction utt = ctx.User_Training_Transaction.Find(id); //User_Training_Status uts = ctx.User_Training_Status.Where(x=>x.Training_Transaction_ID == id).First(); List <CarryOverTraining> userTraining = ctx.User_Training_Status.Include(x => x.User_Profile).Include(x => x.Category_Master) .Include(x => x.Activity_Master).Include(x => x.Sub_Activity_Master).Include(x => x.User_Training_Transaction) .Where(x => x.User_Training_Transaction.Id == id && x.Financial_Year == financialYear).Select(a => new CarryOverTraining() { TrainingStatusId = a.Id, TrainingTransactionId = a.User_Training_Transaction.Id, User_Id = a.User_Id, Date = a.User_Training_Transaction.Date, State_Id = a.User_Training_Transaction.State_Id, Category_Id = a.Category_Id, Activity_Id = a.Activity_Id, SubActivity_Id = a.SubActivity_Id, Hours = a.User_Training_Transaction.Hours, Provider = a.User_Training_Transaction.Provider, Financial_Year = a.Financial_Year, Your_Role = a.User_Training_Transaction.Your_Role, Forwardable = a.User_Training_Transaction.Forwardable, Has_been_Forwarded = a.User_Training_Transaction.Has_been_Forwarded, Descrption = a.User_Training_Transaction.Descrption, UploadedFile = a.User_Training_Transaction.UploadedFile, UploadedFileName = a.User_Training_Transaction.UploadedFileName, Received_By_Forwarding = a.Received_By_Forwarding, Units_Done = a.Units_Done, Min_Required_Category_Units = a.Min_Required_Category_Units }).AsEnumerable().ToList(); decimal? activityId = userTraining.Select(y => y.Activity_Id).First(); decimal? categoryId = userTraining.Select(y => y.Category_Id).First(); decimal? subactivityId = userTraining.Select(y => y.SubActivity_Id).First(); DateTime?date = userTraining.Select(y => y.Date).First(); //getting hour-units rule to create new hours done according to seleted units IEnumerable <StateActivity__with_Rule2> hourUnits = ctx.StateActivity__with_Rule2 .Include(x => x.Rule2_Master) .Where(x => x.ActivityID == activityId && x.StateID == enrolledStateId); string hourRule = hourUnits.Select(x => x.Rule2_Master.Name).First(); #region Old carried over records ///Getting old carried over record if any so that we can check if ///same carried over record is already is in database so that ///we will update old carried over record or we will create a new one. List <User_Training_Status> oldCarriedOverRecord = ctx.User_Training_Status.Where(x => x.Financial_Year == nextFinancialYear && x.Activity_Id == activityId && x.SubActivity_Id == subactivityId && x.Category_Id == categoryId && x.User_Training_Transaction.Date == date && x.User_Id == user_Id && x.Received_By_Forwarding == "Yes").ToList(); if (oldCarriedOverRecord.Count > 0)//Case to update old carry over record. { decimal statusId = oldCarriedOverRecord.Select(x => x.Id).First(); decimal transactionId = oldCarriedOverRecord.Select(x => x.Training_Transaction_ID).First(); User_Training_Transaction oldCarriedRecord = ctx.User_Training_Transaction.Find(transactionId); User_Training_Status oldCarriedStatusRecord = ctx.User_Training_Status.Find(statusId); //Creating new record i.e carried over record if (hourRule == "1 Unit = 1 Hr") { if (carryOverUnitsList[j].Contains(".5")) { result = "Error - .5 in this category, not allowed"; transaction.Dispose(); rd.Status = "Error"; rd.Message = "*.5 units are not allowed in this category"; rd.Requestkey = "DoCarryOver"; return(rd); } else { oldCarriedRecord.Hours = oldCarriedRecord.Hours + Convert.ToDecimal(carryOverUnitsList[j]); oldCarriedStatusRecord.Units_Done = oldCarriedStatusRecord.Units_Done + Convert.ToDecimal(carryOverUnitsList[j]); hoursRemoved = unitsRemoved = Convert.ToDecimal(carryOverUnitsList[j]); } } if (hourRule == "1 Unit = 2 Hr") { oldCarriedRecord.Hours = oldCarriedRecord.Hours + (Convert.ToDecimal(carryOverUnitsList[j]) * 2); oldCarriedStatusRecord.Units_Done = oldCarriedStatusRecord.Units_Done + Convert.ToDecimal(carryOverUnitsList[j]); hoursRemoved = Convert.ToDecimal(carryOverUnitsList[j]) * 2; unitsRemoved = Convert.ToDecimal(carryOverUnitsList[j]); } ctx.Entry(oldCarriedStatusRecord).State = EntityState.Modified; ctx.SaveChanges(); ctx.Entry(oldCarriedRecord).State = EntityState.Modified; ctx.SaveChanges(); //var allTraningUnitss = ctx.User_Training_Status // .Where(x => x.User_Id == user_Id && x.Financial_Year == financialYear).Select(x => x.Units_Done).Sum(); //if (allTraningUnitss < 10) //{ // result = "Error - minimum"; // transaction.Dispose(); // rd.Status = "Error"; // rd.Message = "Minimum 10 units should be left in this financial year."; // rd.Requestkey = "DoCarryOver"; // return rd; //} //result = "Success"; } #endregion else { //Creating new record i.e carried over record if (hourRule == "1 Unit = 1 Hr") { if (carryOverUnitsList[j].Contains(".5")) { transaction.Dispose(); rd.Status = "Error"; rd.Message = "*.5 units are not allowed in this category"; rd.Requestkey = "DoCarryOver"; return(rd); } else { trainingToCreate.Hours = trainingStatusToCreate.Units_Done = Convert.ToDecimal(carryOverUnitsList[j]); hoursRemoved = unitsRemoved = Convert.ToDecimal(carryOverUnitsList[j]); } } if (hourRule == "1 Unit = 2 Hr") { trainingToCreate.Hours = Convert.ToDecimal(carryOverUnitsList[j]) * 2; trainingStatusToCreate.Units_Done = Convert.ToDecimal(carryOverUnitsList[j]); hoursRemoved = Convert.ToDecimal(carryOverUnitsList[j]) * 2; unitsRemoved = Convert.ToDecimal(carryOverUnitsList[j]); } trainingToCreate.Activity_Id = userTraining.Select(y => y.Activity_Id).First(); trainingToCreate.Category_Id = userTraining.Select(y => y.Category_Id).First(); trainingToCreate.Date = userTraining.Select(y => y.Date).First(); trainingToCreate.Descrption = userTraining.Select(y => y.Descrption).First(); trainingToCreate.Financial_Year = nextFinancialYear; trainingToCreate.Forwardable = null; trainingToCreate.Has_been_Forwarded = null; trainingToCreate.Provider = userTraining.Select(y => y.Provider).First(); trainingToCreate.State_Id = userTraining.Select(y => y.State_Id).First(); trainingToCreate.SubActivity_Id = userTraining.Select(y => y.SubActivity_Id).First(); trainingToCreate.UploadedFile = userTraining.Select(y => y.UploadedFile).First(); trainingToCreate.UploadedFileName = userTraining.Select(y => y.UploadedFileName).First(); trainingToCreate.User_Id = userTraining.Select(y => y.User_Id).First(); trainingToCreate.Your_Role = userTraining.Select(y => y.Your_Role).First(); ctx.User_Training_Transaction.Add(trainingToCreate); ctx.SaveChanges(); decimal newly_inserted_id = trainingToCreate.Id; //New carried over record insertion successful. //Now inserting new carried over record in training_transaction_status trainingStatusToCreate.Activity_Id = userTraining.Select(y => y.Activity_Id).First(); trainingStatusToCreate.Category_Id = userTraining.Select(y => y.Category_Id).First(); trainingStatusToCreate.Financial_Year = nextFinancialYear; trainingStatusToCreate.Min_Required_Category_Units = userTraining.Select(y => y.Min_Required_Category_Units).First(); trainingStatusToCreate.Received_By_Forwarding = "Yes"; trainingStatusToCreate.SubActivity_Id = userTraining.Select(y => y.SubActivity_Id).First(); trainingStatusToCreate.Training_Transaction_ID = newly_inserted_id; trainingStatusToCreate.User_Id = userTraining.Select(y => y.User_Id).First(); ctx.User_Training_Status.Add(trainingStatusToCreate); ctx.SaveChanges(); } //Carried over records insertion over. Now update part. //Editing units and hours of old record to update accordingly. //First User_Training_Transaction User_Training_Transaction utt = ctx.User_Training_Transaction.Find(userTraining.Select(y => y.TrainingTransactionId).First()); utt.Hours = utt.Hours - hoursRemoved; utt.Has_been_Forwarded = "Yes"; ctx.Entry(utt).State = EntityState.Modified; ctx.SaveChanges(); //Now User_Training_Status User_Training_Status uts = ctx.User_Training_Status.Find(userTraining.Select(y => y.TrainingStatusId).First()); uts.Units_Done = uts.Units_Done - unitsRemoved; //if (uts.Units_Done == 0.5m) //{ // transaction.Dispose(); // rd.Status = "Error"; // rd.Message = "Less then minimum allowed units(1) left after this carry over which is not allowed"; // rd.Requestkey = "DoCarryOver"; // return rd; //} ctx.Entry(uts).State = EntityState.Modified; ctx.SaveChanges(); decimal?existedCompletedCategories = ctx.User_Training_Status .Include(x => x.Category_Master).Include(x => x.User_Training_Transaction) .Where(x => x.Category_Id == uts.Category_Id && x.Financial_Year == financialYear && x.User_Id == user_Id).Select(x => x.Units_Done).Sum(); if (existedCompletedCategories < 1) { result = "Error - minimum"; transaction.Dispose(); rd.Status = "Error"; rd.Message = "Less then minimum allowed units(i.e 1) left after this carry over which is not allowed"; rd.Requestkey = "DoCarryOver"; return(rd); } var allTraningUnitss = ctx.User_Training_Status .Where(x => x.User_Id == user_Id && x.Financial_Year == financialYear).Select(x => x.Units_Done).Sum(); if (allTraningUnitss < 10) { result = "Error - minimum"; transaction.Dispose(); rd.Status = "Error"; rd.Message = "Minimum 10 units should be left in this financial year."; rd.Requestkey = "DoCarryOver"; return(rd); } result = "Success"; } transaction.Commit(); rd.Status = "Success"; rd.Message = "Selected units are carried over successfully."; rd.Requestkey = "DoCarryOver"; return(rd); } } } catch (Exception ee) { rd.Status = "Error"; rd.Message = "Something went wrong." + ee.ToString(); rd.Requestkey = "DoCarryOver"; return(rd); } }
public TrainingHistoryController() { db = new LaxNarroEntities(); toastNotifications = new ToasterMessage(); }
public InvoiceController() { db = new LaxNarroEntities(); }
private void CheckSubscriptionStatusAndDoStuff() { try { using (LaxNarroEntities ctx = new LaxNarroEntities()) { DateTime dt = DateTime.Today; var expiredPlanUsers = (from s in db.ExpiredPlanUserMailLogs where s.NextReminderDueDate <= dt select s).ToList(); User_Transaction_Master userTransaction = db.User_Transaction_Master.Include(u => u.User_Profile). Include(u => u.Rate_Card).Include(u => u.Plan_Master).Where(u => u.Id == expiredPlanUsers[0].UserID).SingleOrDefault(); for (int i = 0; i < expiredPlanUsers.Count; i++) { switch (expiredPlanUsers[i].ReminderType) { case "N/A": // Write Code to Sent Reminder One. //________________________________ expiredPlanUsers[i].UserID = expiredPlanUsers[i].UserID; expiredPlanUsers[i].ReminderType = "First"; expiredPlanUsers[i].ReminderDate = dt; expiredPlanUsers[i].ReminderStatus = "Sent"; expiredPlanUsers[i].NextReminderDueDate = Convert.ToDateTime(expiredPlanUsers[i].NextReminderDueDate).AddMonths(5); expiredPlanUsers[i].RecordOperationDate = dt; db.Entry(expiredPlanUsers[i]).State = EntityState.Modified; db.SaveChanges(); SendResubMail(userTransaction.User_Profile.FirstName, userTransaction.User_Profile.LastName, userTransaction.User_Profile.EmailAddress, userTransaction.User_ID, userTransaction.End_Date, "~/EmailTemplate/ResubscriptionMail.html"); break; case "First": // Write Code to Sent Reminder Two. //________________________________ expiredPlanUsers[i].UserID = expiredPlanUsers[i].UserID; expiredPlanUsers[i].ReminderType = "Second"; expiredPlanUsers[i].ReminderDate = dt; expiredPlanUsers[i].ReminderStatus = "Sent"; expiredPlanUsers[i].NextReminderDueDate = Convert.ToDateTime(expiredPlanUsers[i].NextReminderDueDate).AddMonths(1).AddDays(-1); expiredPlanUsers[i].RecordOperationDate = dt; db.Entry(expiredPlanUsers[i]).State = EntityState.Modified; db.SaveChanges(); SendResubMail(userTransaction.User_Profile.FirstName, userTransaction.User_Profile.LastName, userTransaction.User_Profile.EmailAddress, userTransaction.User_ID, userTransaction.End_Date, "~/EmailTemplate/ResubscriptionMail.html"); break; } } } } catch (Exception r) { //throw; } }
public DownloadAndEmailService() { db = new LaxNarroEntities(); }
public ReturnData PostTransaction(string email, string Plan_ID, string payerId, string Rate_Id, string paymentId, string Amount, string Transection_ID) { ReturnData rd = new ReturnData(); if (email == string.Empty || Plan_ID == string.Empty || payerId == string.Empty || paymentId == string.Empty || Rate_Id == string.Empty || Amount == string.Empty || Transection_ID == string.Empty) { rd.Status = "Failure"; rd.Message = "Missing Parameters"; rd.Requestkey = "PostTransactions"; return(rd); } try { decimal userId = db.User_Profile.Where(x => x.EmailAddress == email).Select(x => x.ID).First(); //-----For sending Invoice mail------ decimal recordId = 0; decimal planId = Convert.ToDecimal(Plan_ID); using (LaxNarroEntities ctx = new LaxNarroEntities()) { using (var transaction = ctx.Database.BeginTransaction()) { int?maxInvoice = ctx.User_Transaction_Master.Max(u => u.Invoice_No); Rate_Card rate_card = ctx.Rate_Card.Include(x => x.Plan_Master) .Where(m => m.Plan_Id == planId && m.Status == "Active" && m.Plan_Master.Plan != "Demo").FirstOrDefault(); if (rate_card == null) { rd.Status = "Failure"; rd.Message = "Invalid Plan (Demo)"; rd.Requestkey = "PostTransactions"; return(rd); } //if(rate_card.Amount !=Convert.ToDecimal(Amount)) //{ // PaypalResponse paypalResponse1 = new PaypalResponse // { // user_id = userId, // Paypal_ReferenceId = paymentId, // intent = "sale", // payer = "Android", // payee = string.Empty, // note_to_payer = "From Android", // update_time = Convert.ToString(DateTime.Today), // create_time = Convert.ToString(DateTime.Today), // response_state = "created", // failure_reason = "Invalid Amount" // }; // ctx.PaypalResponses.Add(paypalResponse1); // ctx.SaveChanges(); // transaction.Commit(); // rd.Status = "Failure"; // rd.Message = "Invalid Amount"; // rd.Requestkey = "PostTransactions"; // return rd; //} User_Transaction_Master userTransaction = new User_Transaction_Master(); List <User_Transaction_Master> userAllTransaction = ctx.User_Transaction_Master .Where(x => x.User_ID == userId).ToList(); // Set the payer for the payment var paymentExecution = new PaymentExecution() { payer_id = payerId }; // Identify the payment to execute var payment = new Payment() { id = paymentId }; //var apiContext = GetAPIContext(); // Execute the Payment //var executedPayment = payment.Execute(apiContext, paymentExecution); int?max = userAllTransaction.Max(u => (int?)u.Invoice_No); User_Transaction_Master maxedInvoicedTransaction = userAllTransaction .FirstOrDefault(x => x.User_ID == userId && x.Invoice_No == max); int?maxedInvoiceNo = ctx.User_Transaction_Master.Max(u => (int?)u.Invoice_No); //if (executedPayment.state == "approved") //{ //---------For new payment record (second time payment and so on)------- if (maxedInvoicedTransaction.Payment_Status != "N/A") { userTransaction.Amount = Convert.ToDecimal(rate_card.Amount); DateTime?endDate = maxedInvoicedTransaction.End_Date; string strEndDate = string.Empty; if (endDate != null) { strEndDate = endDate.ToString(); } userTransaction.Start_Date = Convert.ToDateTime(strEndDate); if (rate_card.Plan_Master.Plan == "Yearly") { userTransaction.End_Date = userTransaction.Start_Date.AddYears(1); } else { userTransaction.End_Date = userTransaction.Start_Date.AddYears(2); } if (maxInvoice == null) { userTransaction.Invoice_No = 1; } else { userTransaction.Invoice_No = maxInvoice + 1; } userTransaction.Payment_Date = DateTime.Today; userTransaction.Payment_Method = "Online"; userTransaction.Payment_Status = "Paid"; userTransaction.Paypal_PayerId = payerId; userTransaction.PlanID = rate_card.Plan_Id; userTransaction.Rate_ID = rate_card.Rate_Id; userTransaction.Status = "Active"; userTransaction.Transaction_Status = "approved"; userTransaction.Transection_ID = Transection_ID; userTransaction.User_ID = userId; ctx.User_Transaction_Master.Add(userTransaction); ctx.SaveChanges(); recordId = userTransaction.Id; rd.Status = "Success"; rd.Message = "Transaction Saved"; rd.Requestkey = "PostTransactions"; //return rd; } //---------For updating the demo record (First time payment)------- else { maxedInvoicedTransaction.Amount = Convert.ToDecimal(rate_card.Amount); if (rate_card.Plan_Master.Plan == "Yearly") { maxedInvoicedTransaction.End_Date = DateTime.Today.AddYears(1); } else { maxedInvoicedTransaction.End_Date = DateTime.Today.AddYears(2); } if (maxInvoice == null) { maxedInvoicedTransaction.Invoice_No = 1; } else { maxedInvoicedTransaction.Invoice_No = maxInvoice + 1; } maxedInvoicedTransaction.Payment_Date = DateTime.Today; maxedInvoicedTransaction.Payment_Method = "Online"; maxedInvoicedTransaction.Payment_Status = "Paid"; maxedInvoicedTransaction.Paypal_PayerId = payerId; maxedInvoicedTransaction.PlanID = rate_card.Plan_Id; maxedInvoicedTransaction.Rate_ID = rate_card.Rate_Id; //DateTime? endDate = maxedInvoicedTransaction.End_Date; //string strEndDate = string.Empty; //if (endDate != null) // strEndDate = endDate.ToString(); maxedInvoicedTransaction.Start_Date = DateTime.Today; maxedInvoicedTransaction.Status = "Active"; maxedInvoicedTransaction.Transaction_Status = "approved"; maxedInvoicedTransaction.Transection_ID = Transection_ID; maxedInvoicedTransaction.User_ID = userId; ctx.Entry(maxedInvoicedTransaction).State = EntityState.Modified; ctx.SaveChanges(); recordId = maxedInvoicedTransaction.Id; rd.Status = "Success"; rd.Message = "Transaction Saved"; rd.Requestkey = "PostTransactions"; //return rd; } PaypalResponse paypalResponse = new PaypalResponse { user_id = userId, Paypal_ReferenceId = paymentId, intent = "sale", payer = "Android", payee = string.Empty, note_to_payer = "From Android", update_time = Convert.ToString(DateTime.Today), create_time = Convert.ToString(DateTime.Today), response_state = "approved", failure_reason = string.Empty }; ctx.PaypalResponses.Add(paypalResponse); ctx.SaveChanges(); MailLog user = ctx.MailLogs.FirstOrDefault(x => x.UserID == userId); if (user != null) { user.LastReminderStatus = "Deactive"; ctx.SaveChanges(); } transaction.Commit(); } Thread thread = new Thread(() => SendInvoice(recordId, userId)); thread.Start(); User_Profile userMail = ctx.User_Profile.Where(p => p.ID == userId).FirstOrDefault(); Thread thread2 = new Thread(() => SendMail(userMail.FirstName, userMail.LastName, userMail.EmailAddress, "", "Lexnarro - Subscription Successful", "~/EmailTemplate/SubscriptionMail.html")); thread2.Start(); return(rd); } } //catch (DbEntityValidationException e) //{ // string errorMessage = string.Empty; // foreach (DbEntityValidationResult eve in e.EntityValidationErrors) // { // Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", // eve.Entry.Entity.GetType().Name, eve.Entry.State); // foreach (DbValidationError ve in eve.ValidationErrors) // { // Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", // ve.PropertyName, ve.ErrorMessage); // errorMessage = ve.ErrorMessage; // //TempData["message"] = ViewBag.message + ToasterMessage.Message(ToastType.error, errorMessage); // } // } //} catch (Exception r) { rd.Status = "Failure"; rd.Message = "Something went wrong. Please contact administrator"; rd.Requestkey = "PostTransactions"; return(rd); } }
public CarryOverController() { db = new LaxNarroEntities(); }
public AccountController() { db = new LaxNarroEntities(); }
public ReportsController() { db = new LaxNarroEntities(); }
public ActiveUsersController() { db = new LaxNarroEntities(); toastNotifications = new ToasterMessage(); }
public AdminController() { db = new LaxNarroEntities(); }