public AdherentsViewModel(AdherentStolon activeAdherentStolon, Stolon stolon, List <Sympathizer> sympathizers, List <AdherentStolon> adherentsStolon) { AdherentsStolonViewModel = new AdherentsStolonViewModel(activeAdherentStolon, stolon, adherentsStolon); ActiveAdherentStolon = activeAdherentStolon; SympathizersViewModel = new SympathizersViewModel(activeAdherentStolon, stolon, sympathizers); Stolon = stolon; }
public ProductEditionViewModel(AdherentStolon activeAdherentStolon, Product product, ApplicationDbContext context, bool isNew) { ActiveAdherentStolon = activeAdherentStolon; Product = product; IsNew = isNew; RefreshTypes(context); }
public SelectAdherentViewModel(AdherentStolon activeAdherent, Stolon stolon, List <string> adherentsMails, bool addHasProducer) { base.ActiveAdherentStolon = activeAdherent; AdherentsMails = adherentsMails; Stolon = stolon; AddHasProducer = addHasProducer; }
// GET: WeekBasket/Index/id public IActionResult Index() { AdherentStolon adherentStolon = GetActiveAdherentStolon(); if (adherentStolon == null) { return(NotFound()); } TempWeekBasket tempWeekBasket = _context.TempsWeekBaskets.Include(x => x.AdherentStolon).Include(x => x.AdherentStolon.Adherent).Include(x => x.BillEntries).FirstOrDefault(x => x.AdherentStolon.Id == adherentStolon.Id); ValidatedWeekBasket validatedWeekBasket = _context.ValidatedWeekBaskets.Include(x => x.AdherentStolon).Include(x => x.AdherentStolon.Adherent).Include(x => x.BillEntries).FirstOrDefault(x => x.AdherentStolon.Id == adherentStolon.Id); if (tempWeekBasket == null) { //Il n'a pas encore de panier de la semaine, on lui en crée un tempWeekBasket = new TempWeekBasket { AdherentStolon = adherentStolon, BillEntries = new List <BillEntry>() }; _context.Add(tempWeekBasket); _context.SaveChanges(); } return(View(new WeekBasketViewModel(adherentStolon, tempWeekBasket, validatedWeekBasket, _context))); }
public virtual IActionResult AddAdherent(SelectAdherentViewModel selectAdherentViewModel) { if (!Authorized(Role.Volunteer)) { return(Unauthorized()); } if (ModelState.IsValid) { AdherentStolon adherentStolon = new AdherentStolon(_context.Adherents.First(x => x.Email == selectAdherentViewModel.SelectedEmail.Trim()), _context.Stolons.First(x => x.Id == selectAdherentViewModel.Stolon.Id)); adherentStolon.RegistrationDate = DateTime.Now; if (_context.AdherentStolons.Where(x => x.StolonId == selectAdherentViewModel.Stolon.Id).Any()) { adherentStolon.LocalId = _context.AdherentStolons.Where(x => x.StolonId == selectAdherentViewModel.Stolon.Id).Max(x => x.LocalId) + 1; } else { adherentStolon.LocalId = 1; } _context.AdherentStolons.Add(adherentStolon); _context.SaveChanges(); if (selectAdherentViewModel.AddHasProducer) { SetAsProducer(adherentStolon.Id); } //Send confirmation mail Services.AuthMessageSender.SendEmail(adherentStolon.Stolon.Label, adherentStolon.Adherent.Email, adherentStolon.Adherent.Name, "Adhésion à un nouveau Stolon", base.RenderPartialViewToString("AdherentConfirmationMail", adherentStolon)); return(RedirectToAction("Index")); } return(View(selectAdherentViewModel)); }
public virtual PartialViewResult _PartialDisableAdherent(Guid id, Guid?stolonId = null) { AdherentStolon adherentStolon = _context.AdherentStolons.Include(x => x.Adherent).Include(x => x.Stolon).FirstOrDefault(x => x.Id == id); return(PartialView(new DisableAccountViewModel(GetActiveAdherentStolon(), adherentStolon))); }
/// <summary> /// Pay subscription /// </summary> /// <param name="id">AdherentStolon id</param> /// <returns></returns> public IActionResult PaySubscription(Guid id) { if (!Authorized(Role.Volunteer)) { return(Unauthorized()); } //Adherent stolon AdherentStolon adherentStolon = _context.AdherentStolons.Include(x => x.Stolon).Include(x => x.Adherent).First(x => x.Id == id); adherentStolon.SubscriptionPaid = true; _context.AdherentStolons.Update(adherentStolon); //Transaction Transaction transaction = new Transaction(); transaction = new AdherentTransaction() { Adherent = adherentStolon.Adherent }; //Update transaction.Amount = Configurations.GetSubscriptionAmount(adherentStolon); //Add a transaction transaction.Stolon = adherentStolon.Stolon; transaction.AddedAutomaticly = true; transaction.Date = DateTime.Now; transaction.Type = Transaction.TransactionType.Inbound; transaction.Category = Transaction.TransactionCategory.Subscription; transaction.Description = "Paiement de la cotisation de l'adhérant " + (adherentStolon.IsProducer?"producteur":"") + " : " + adherentStolon.Adherent.Name + " " + adherentStolon.Adherent.Surname; _context.Transactions.Add(transaction); //Save _context.SaveChanges(); return(RedirectToAction("Index")); }
public WeekBasketViewModel(AdherentStolon adherentStolon, TempWeekBasket tempWeekBasket, ValidatedWeekBasket validatedWeekBasket, ApplicationDbContext context) { TempWeekBasket = tempWeekBasket; ValidatedWeekBasket = validatedWeekBasket; AdherentStolon = adherentStolon; ProductsStocks = context.ProductsStocks.Include(x => x.Product).Include(x => x.AdherentStolon).Where(x => x.AdherentStolon.Id == AdherentStolon.Stolon.Id).Where(x => x.Product.IsAvailable).Where(x => x.State == Product.ProductState.Enabled).ToList(); ProductTypes = context.ProductTypes.Include(x => x.ProductFamilly).ToList(); }
public AdherentViewModel(AdherentStolon activeAdherentStolon, Adherent adherent, Stolon stolon, AdherentEdition edition) { Adherent = adherent; OriginalEmail = adherent.Email; ActiveAdherentStolon = activeAdherentStolon; Edition = edition; Stolon = stolon; }
public IActionResult SetAsAdherent(Guid?id) { AdherentStolon adherentStolon = _context.AdherentStolons.First(x => x.Id == id); adherentStolon.Role = Role.Adherent; _context.SaveChanges(); return(RedirectToAction("Index")); }
public IActionResult SetAsConsumer(Guid?id) { AdherentStolon adherentStolon = _context.AdherentStolons.First(x => x.Id == id); adherentStolon.IsProducer = false; _context.ProductsStocks.RemoveRange(_context.ProductsStocks.Where(x => x.AdherentStolonId == adherentStolon.Id)); _context.SaveChanges(); return(RedirectToAction("Index")); }
private static void CreateAcount(ApplicationDbContext context, UserManager <ApplicationUser> userManager, string name, string surname, string email, string password, Role role, Stolon stolon, bool isWebAdmin, bool isProducer = false, bool createOnlyIfTableEmpty = false) { if (createOnlyIfTableEmpty) { if (isProducer) { if (context.AdherentStolons.Any(x => x.IsProducer)) { return; } } } if (context.Adherents.Any(x => x.Email == email)) { return; } Adherent adherent = new Adherent(); adherent.Name = name; adherent.Surname = surname; adherent.Email = email; adherent.PostCode = "07000"; adherent.IsWebAdmin = isWebAdmin; AdherentStolon adherentStolon = new AdherentStolon(adherent, stolon, true) { RegistrationDate = DateTime.Now, Enable = true, Role = role }; adherentStolon.LocalId = context.AdherentStolons.Where(x => x.StolonId == stolon.Id).Select(x => x.LocalId).DefaultIfEmpty(0).Max() + 1; if (isProducer) { adherent.CompanyName = "La ferme de " + adherent.Name; adherent.Latitude = 44.7354673; adherent.Longitude = 4.601407399999971; adherentStolon.IsProducer = true; } context.Adherents.Add(adherent); context.AdherentStolons.Add(adherentStolon); context.SaveChanges(); #region Creating linked application data var appUser = new ApplicationUser { UserName = adherent.Email, Email = adherent.Email }; appUser.User = adherent; userManager.CreateAsync(appUser, password).Wait(); #endregion Creating linked application data }
public bool Authorized(Role role) { //Check if user is Authentified if (!User.Identity.IsAuthenticated) { return(false); } AdherentStolon adherentStolon = GetActiveAdherentStolon(); return(adherentStolon.Authorized(role)); }
public IActionResult UnSetAsWebAdmin(Guid?id) { if (!AuthorizedWebAdmin()) { return(Unauthorized()); } AdherentStolon adherentStolon = _context.AdherentStolons.Include(x => x.Adherent).First(x => x.Id == id); adherentStolon.Adherent.IsWebAdmin = false; _context.SaveChanges(); return(RedirectToAction("Index")); }
public IActionResult SetAsAdmin(Guid?id) { if (!Authorized(Role.Admin)) { return(Unauthorized()); } AdherentStolon adherentStolon = _context.AdherentStolons.First(x => x.Id == id); adherentStolon.Role = Role.Admin; _context.SaveChanges(); return(RedirectToAction("Index")); }
// GET: Consumers/Edit/5 public IActionResult Edit() { AdherentStolon adherentStolon = GetActiveAdherentStolon(); if (adherentStolon == null) { return(NotFound()); } bool isProducer = _context.AdherentStolons.Any(x => x.IsProducer && x.AdherentId == adherentStolon.AdherentId); return(View(new AdherentViewModel(adherentStolon, adherentStolon.Adherent, adherentStolon.Stolon, isProducer? AdherentEdition.Producer: AdherentEdition.Consumer))); }
/// <summary> /// Set as producer the specified adherent stolon /// </summary> /// <param name="id">Adherent Stolon Id</param> public IActionResult SetAsProducer(Guid?id) { AdherentStolon adherentStolon = _context.AdherentStolons.Include(x => x.Adherent).ThenInclude(x => x.Products).First(x => x.Id == id); adherentStolon.IsProducer = true; foreach (var product in adherentStolon.Adherent.Products) { _context.ProductsStocks.Add(new ProductStockStolon(product.Id, adherentStolon.Id)); } _context.SaveChanges(); return(RedirectToAction("Index")); }
public async Task <IActionResult> Login(LoginViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { //D'abord on regarde si il existe bien un User avec ce mail Adherent stolonsUser = _context.Adherents.Include(x => x.AdherentStolons).FirstOrDefault(x => model.Email.Equals(x.Email, StringComparison.CurrentCultureIgnoreCase)); if (stolonsUser == null) { ModelState.AddModelError("LoginFailed", "Utilisateur inconnu"); return(View(model)); } else { AdherentStolon activeAdherentStolon = stolonsUser.AdherentStolons.First(x => x.IsActiveStolon); //On regarde si le compte de l'utilisateur est actif if (!activeAdherentStolon.Enable) { var otherAdherentStolon = stolonsUser.AdherentStolons.FirstOrDefault(x => x.Enable && x.Id != activeAdherentStolon.Id && x.AdherentId == activeAdherentStolon.AdherentId); if (otherAdherentStolon == null) { ModelState.AddModelError("LoginFailed", "Votre compte a été bloqué pour la raison suivante : " + activeAdherentStolon.DisableReason); return(View(model)); } else { otherAdherentStolon.SetHasActiveStolon(_context); } } // Il a un mot de passe, on le log si il est bon // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, set lockoutOnFailure: true var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure : false); if (result.Succeeded) { return(RedirectToLocal(returnUrl)); } if (result.IsLockedOut) { return(View("Lockout")); } else { ModelState.AddModelError("LoginFailed", "Erreur dans la saisie du mot de passe"); return(View(model)); } } } // If we got this far, something failed, redisplay form return(View(model)); }
// GET: Stolons public override IActionResult Index() { if (!AuthorizedWebAdmin()) { return(Unauthorized()); } AdherentStolon activeAdherentStolon = GetActiveAdherentStolon(); List <AdherentsViewModel> adherentsViewModel = new List <AdherentsViewModel>(); foreach (var stolon in _context.Stolons.ToList()) { adherentsViewModel.Add(new AdherentsViewModel(activeAdherentStolon, stolon, _context.Sympathizers.Where(x => x.StolonId == stolon.Id).ToList(), _context.AdherentStolons.Include(x => x.Stolon).Include(x => x.Adherent).Where(x => x.StolonId == stolon.Id).ToList())); } ViewData["Controller"] = "Stolons"; return(View(new StolonsViewModel(GetActiveAdherentStolon(), adherentsViewModel))); }
private static T CreateBill <T>(AdherentStolon adherentStolon, List <BillEntry> billEntries) where T : class, IBill, new() { IBill bill = new T(); bill.BillId = Guid.NewGuid(); bill.BillEntries = billEntries; bill.BillNumber = GenerateBillNumber(adherentStolon.Stolon.ShortLabel, adherentStolon.LocalId, bill is ProducerBill); if (bill is ProducerBill) { (bill as ProducerBill).OrderNumber = GenerateOrderNumber(adherentStolon.Stolon.ShortLabel, adherentStolon.LocalId); } bill.AdherentStolon = adherentStolon; bill.State = BillState.Pending; bill.EditionDate = DateTime.Now; return(bill as T); }
public IActionResult EnableAdherent(Guid id) { if (!Authorized(Role.Volunteer)) { return(Unauthorized()); } AdherentStolon adherentStolon = _context.AdherentStolons.First(x => x.Id == id); adherentStolon.DisableReason = ""; adherentStolon.Enable = true; //Update _context.AdherentStolons.Update(adherentStolon); //Save _context.SaveChanges(); return(RedirectToAction("Index")); }
public virtual async Task <IActionResult> Create(AdherentEdition edition, AdherentViewModel vmAdherent, IFormFile uploadFile) { if (!Authorized(Role.Volunteer)) { return(Unauthorized()); } if (ModelState.IsValid) { Stolon stolon = _context.Stolons.FirstOrDefault(x => x.Id == vmAdherent.Stolon.Id); #region Creating Consumer //Setting value for creation UploadAndSetAvatar(vmAdherent.Adherent, uploadFile); vmAdherent.Adherent.Name = vmAdherent.Adherent.Name.ToUpper(); AdherentStolon adherentStolon = new AdherentStolon(vmAdherent.Adherent, stolon, true); adherentStolon.RegistrationDate = DateTime.Now; adherentStolon.LocalId = _context.AdherentStolons.Where(x => x.StolonId == stolon.Id).Max(x => x.LocalId) + 1; adherentStolon.IsProducer = edition == AdherentEdition.Producer; _context.Adherents.Add(vmAdherent.Adherent); _context.AdherentStolons.Add(adherentStolon); #endregion Creating Consumer #region Creating linked application data var appUser = new ApplicationUser { UserName = vmAdherent.Adherent.Email, Email = vmAdherent.Adherent.Email }; appUser.User = vmAdherent.Adherent; var result = await _userManager.CreateAsync(appUser, vmAdherent.Adherent.Email); #endregion Creating linked application data // // _context.SaveChanges(); //Send confirmation mail string confirmationViewName = edition == AdherentEdition.Consumer ? "AdherentConfirmationMail" : "ProducerConfirmationMail"; Services.AuthMessageSender.SendEmail(stolon.Label, vmAdherent.Adherent.Email, vmAdherent.Adherent.Name, "Creation de votre compte", base.RenderPartialViewToString(confirmationViewName, adherentStolon)); return(RedirectToAction("Index")); } return(View(vmAdherent)); }
public virtual IActionResult DeleteConfirmed(Guid id) { if (!Authorized(Role.Admin)) { return(Unauthorized()); } AdherentStolon adherentStolon = _context.AdherentStolons.First(x => x.Id == id); //Check if adherent is in an other Stolons if (_context.AdherentStolons.Any(x => x.AdherentId == adherentStolon.AdherentId && x.StolonId != adherentStolon.StolonId)) { } //Delete the adherent from this stolons _context.AdherentStolons.Remove(adherentStolon); //Save _context.SaveChanges(); return(RedirectToAction("Index")); }
public IActionResult DeleteAdherent(Guid id) { if (!Authorized(Role.Admin)) { return(Unauthorized()); } if (id == null) { return(NotFound()); } AdherentStolon adherentStolon = _context.AdherentStolons.Include(x => x.Adherent).Include(x => x.Stolon).FirstOrDefault(x => x.Id == id); if (adherentStolon == null) { return(NotFound()); } return(View(new AdherentStolonViewModel(GetActiveAdherentStolon(), adherentStolon))); }
public IActionResult EditAdherent(Guid id) { if (!Authorized(Role.Volunteer)) { return(Unauthorized()); } if (id == null) { return(NotFound()); } AdherentStolon adherentStolon = _context.AdherentStolons.Include(x => x.Adherent).Include(x => x.Stolon).FirstOrDefault(x => x.Id == id); if (adherentStolon == null) { return(NotFound()); } return(View(new AdherentViewModel(GetActiveAdherentStolon(), adherentStolon.Adherent, adherentStolon.Stolon, AdherentEdition.Consumer))); }
public IActionResult CreditToken(CreditTokenViewModel vmCreditToken) { if (!Authorized(Role.Volunteer)) { return(Unauthorized()); } AdherentStolon adherentStolon = _context.AdherentStolons.Include(x => x.Adherent).First(x => x.Id == vmCreditToken.AdherentStolon.Id); adherentStolon.Token += vmCreditToken.CreditedToken; _context.Add(new AdherentTransaction( adherentStolon.Adherent, adherentStolon.Stolon, Transaction.TransactionType.Inbound, Transaction.TransactionCategory.TokenCredit, vmCreditToken.CreditedToken, "Encaissement de " + vmCreditToken.CreditedToken + "€, pour créditage du compte de " + adherentStolon.Adherent.Name + "( " + adherentStolon.LocalId + " ) de " + vmCreditToken.CreditedToken + "Ṩ")); _context.Update(adherentStolon); _context.SaveChanges(); return(RedirectToAction("Index")); }
public static decimal GetSubscriptionAmount(AdherentStolon adherentStolon) { int currentMonth = DateTime.Now.Month - 6; int subscriptionMonth = (int)adherentStolon.Stolon.SubscriptionStartMonth; if (currentMonth < subscriptionMonth) { currentMonth += 12; } bool isHalfSubscription = currentMonth > (subscriptionMonth + 6); // if (adherentStolon.IsProducer) { return(isHalfSubscription ? adherentStolon.Stolon.ProducerSubscription / 2 : adherentStolon.Stolon.ProducerSubscription); } else { return(isHalfSubscription ? adherentStolon.Stolon.ConsumerSubscription / 2 : adherentStolon.Stolon.ConsumerSubscription); } }
public async Task <IViewComponentResult> InvokeAsync() { if (User.Identity.IsAuthenticated) { ApplicationUser appUser = await _userManager.FindByIdAsync(_userManager.GetUserId(HttpContext.User)); AdherentStolon adherentStolon = _dbContext.AdherentStolons.Include(x => x.Adherent).ThenInclude(x => x.AdherentStolons).Include(x => x.Stolon).FirstOrDefault(x => x.IsActiveStolon && x.Adherent.Email.Equals(appUser.Email, StringComparison.CurrentCultureIgnoreCase)); adherentStolon.Adherent.AdherentStolons.ForEach(x => x.Stolon = _dbContext.Stolons.First(stolon => stolon.Id == x.StolonId)); TempWeekBasket tempWeekBasket = _dbContext.TempsWeekBaskets.Include(x => x.AdherentStolon).Include(x => x.AdherentStolon.Adherent).Include(x => x.BillEntries).FirstOrDefault(x => x.AdherentStolon.Id == adherentStolon.Id); if (tempWeekBasket != null) { tempWeekBasket.Validated = WeekBasketController.IsBasketValidated(tempWeekBasket, _dbContext); } ConsumerBill consumerBill = _dbContext.ConsumerBills.FirstOrDefault(x => x.AdherentStolon.Id == adherentStolon.Id && x.State == BillState.Pending); return(View(new BannerViewModel(adherentStolon, tempWeekBasket, consumerBill))); } else { return(View()); } }
public virtual IActionResult DeleteAdherent(Guid id) { if (!Authorized(Role.Admin)) { return(Unauthorized()); } AdherentStolon adherentStolon = _context.AdherentStolons.Include(x => x.Adherent).First(x => x.Id == id); //We have to keep producers for bills history if (adherentStolon.IsProducer && _context.ProducerBills.Any(x => x.AdherentStolon.Id == adherentStolon.Id)) { adherentStolon.StolonId = null; adherentStolon.Stolon.UserStolons.Remove(adherentStolon); } else { //Delete the adherent from this stolons _context.AdherentStolons.Remove(adherentStolon); } //Save _context.SaveChanges(); //If there adherent is not in any stolon remove it from connexion if (!_context.AdherentStolons.Any(x => x.AdherentId == adherentStolon.AdherentId)) { _userManager.DeleteAsync(_userManager.Users.First(x => x.Email == adherentStolon.Adherent.Email)); _context.Adherents.Remove(_context.Adherents.First(x => x.Id == adherentStolon.AdherentId)); _context.SaveChanges(); } else { //Give the adherant a new active stolon _context.AdherentStolons.First(x => x.AdherentId == adherentStolon.AdherentId).SetHasActiveStolon(_context); _context.SaveChanges(); } return(RedirectToAction("Index")); }
public StolonContactViewModel(Stolon stolon, List <AdherentStolon> producers, int totalProducts, AdherentStolon activeAdherentStolon = null) { ActiveAdherentStolon = activeAdherentStolon; Stolon = stolon; Producers = producers; TotalProducts = totalProducts; foreach (var producer in producers) { foreach (var product in producer.Adherent.Products) { Products.Add(product); if (!AvailableProductFamillyAndType.Keys.Any(x => x.Id == product.Familly.Type.Id)) { AvailableProductFamillyAndType.Add(product.Familly.Type, new List <ProductFamilly>()); } if (!AvailableProductFamillyAndType[product.Familly.Type].Any(x => x.Id == product.Familly.Id)) { AvailableProductFamillyAndType[product.Familly.Type].Add(product.Familly); } } } }