public IActionResult AddExpense(IFormCollection formCollection) { //variables //liste de depenses List <subExpense> subExpenses = new List <subExpense>(); //liste de sous-depenses int count = 0; //pour aller chercher chaque element du formulaire double costTotal = 0; //pour le prix d'une depenses(addition de toute les sous-depenses d'une depense) //récupération de valeurs Project p = projectmanager.getProjet(Convert.ToInt32(formCollection["id"]));//va chercher le bon projet dans la BD List <ExpenseInfo> expenseInfos = new List <ExpenseInfo>(); int counter = 1; foreach (var expense in p.listProjectSoumission()) { ExpenseInfo ex = new ExpenseInfo(); FollowInfo[] follwlist = new JavaScriptSerializer().Deserialize <FollowInfo[]>(formCollection[counter.ToString()]); List <FollowInfo> subex = new List <FollowInfo>(); double total = 0; foreach (var item in follwlist) { total += item.amount; subex.Add(item); } ex.Spending = expense.Spending; ex.subExpenses = subex; ex.amount = total; expenseInfos.Add(ex); counter++; } Expense saveEx = new Expense(); saveEx.ExpenseDate = DateTime.Now; saveEx.JsonExpenseInfo = JsonConvert.SerializeObject(expenseInfos); ProjectExpense projectExpense = new ProjectExpense(); projectExpense.PeExpenseId = Convert.ToInt32(formCollection["id"]); _context.Add(saveEx); _context.SaveChanges(); projectExpense.PeExpenseId = saveEx.ExpenseId; projectExpense.PeProject = p; projectExpense.PeExpense = saveEx; _context.ProjectExpense.Add(projectExpense); _context.SaveChanges(); return(RedirectToAction("Projet", new { id = formCollection["id"] })); }
public IActionResult Addprojet(IFormCollection formCollection) { ProjectFollowUp projectFollowUp = new ProjectFollowUp(); ProjectExpense projectExpense = new ProjectExpense(); Project p = new Project(); p.ProjectName = formCollection["ProjectName"]; p.ProjectDebut = Convert.ToDateTime(formCollection["project_debut"]); p.ProjectFin = Convert.ToDateTime(formCollection["project-fin"]); //TOFIX: La sérialisation JSON Échoue s'il y a plus qu'un mot dans le champ "Spending" //I know on va juste empecher avec des espaces FollowInfo[] follwlist = new JavaScriptSerializer().Deserialize <FollowInfo[]>(formCollection["table"]); List <FollowInfo> soumission = new List <FollowInfo>(); foreach (var item in follwlist) { soumission.Add(item); } FollowUp follow = new FollowUp(); follow.FuDate = DateTime.Now; follow.FuInfo = JsonConvert.SerializeObject(soumission); List <ExpenseInfo> expenseInfo = new List <ExpenseInfo>(); foreach (var item in soumission) { ExpenseInfo expenses = new ExpenseInfo(); List <FollowInfo> subex = new List <FollowInfo>(); FollowInfo ex = new FollowInfo(); expenses.Spending = item.Spending; expenses.amount = 0; ex.Spending = "Title"; ex.amount = 0; subex.Add(ex); expenses.subExpenses = subex; expenseInfo.Add(expenses); } Expense expense = new Expense(); expense.ExpenseDate = DateTime.Now; expense.JsonExpenseInfo = JsonConvert.SerializeObject(expenseInfo); _context.Add(follow); _context.Add(expense); _context.SaveChanges(); projectFollowUp.PfFollowUpId = follow.FuId; projectFollowUp.PfProject = p; projectExpense.PeExpenseId = expense.ExpenseId; projectExpense.PeProject = p; p.ProjectSoumission = JsonConvert.SerializeObject(soumission); Users user = new Users(); user = usermanager.FindUserByID(formCollection["Users"]); projectmanager.addProjet(p); projectFollowUp.PfFollowUp = follow; projectExpense.PeExpense = expense; _context.ProjectFollowUp.Add(projectFollowUp); _context.ProjectExpense.Add(projectExpense); _context.SaveChanges(); return(RedirectToAction("Index")); }