public static void Main(string[] args) { Employee Emp = new Employee(); string FullName; Console.WriteLine("List Of Companies:"); foreach (string str in Enum.GetNames(typeof(WorksIn))) { Console.WriteLine(str); } Console.WriteLine("Enter the First Name: "); Emp.FirstName = Console.ReadLine(); Console.WriteLine("Enter the Last Name: "); Emp.LastName = Console.ReadLine(); Console.WriteLine("Enter the Company Name:"); WorksIn Company = (WorksIn)(Enum.Parse(typeof(WorksIn), Console.ReadLine())); FullName = Emp.FirstName + " " + Emp.LastName; Console.WriteLine("Full Name && Works In: {0},{1}", FullName, Company); Console.ReadLine(); }
public ActionResult Create([Bind(Include = "idProjectPK,projectName,objective,estimatedCost,realCost,startingDate,finishingDate,budget,estimatedDuration,idClientFK,status, realDuration")] Project project, [Bind(Include = "idEmployeeFKPK")] WorksIn employee) { var EmployeesController = new EmployeesController(); //Controlador de empleados var availableEmployees = EmployeesController.AvailableEmployees(); //retorna los desarrolladores disponibles. var fecha = DateTime.Now; if (db.Project.Any(x => x.projectName == project.projectName)) //si el nombre del proyecto ya existe { ModelState.AddModelError("projectName", "Ya existe un proyecto registrado con ese nombre"); ViewBag.idClientFK = new SelectList(db.Client, "idClientPK", "clientName"); //viewbag para desplegar el dropdown de clientes ViewBag.idEmployeeFKPK = new SelectList(availableEmployees, "idEmployeePK", "employeeName"); //viewbag para desplegar el dropdown ViewBag.status = SelectListStatus(null); return(View(project)); //no guarda cambios y actualiza la vista. } if (ModelState.IsValid) //si el modelo es válido { if (project.startingDate < project.finishingDate) { db.Project.Add(project); //agrega el proyecto a la tabla employee.idProjectFKPK = project.idProjectPK; employee.role = 1; db.WorksIn.Add(employee); //agrega la relación de lider a la tabla worksIn project.realDuration = 0; project.estimatedDuration = 0; project.creationDate = fecha; db.SaveChanges(); //guarda cambios return(RedirectToAction("Index")); //vuelve al index. } else { ModelState.AddModelError("startingDate", "La fecha de inicio no puede ser despues de la fecha de finalización."); } } //Si no entra en ninguno de los 2 ifs entonces actualiza la vista con los mismos viewbags. ViewBag.idClientFK = new SelectList(db.Client, "idClientPK", "clientName", project.idClientFK); ViewBag.idEmployeeFKPK = new SelectList(availableEmployees, "idEmployeePK", "employeeName", employee); ViewBag.status = SelectListStatus(null); return(View(project)); }
public ActionResult Edit([Bind(Include = "idProjectPK,projectName,objective,estimatedCost,realCost,startingDate,finishingDate,budget,estimatedDuration,idClientFK, status")] Project project, [Bind(Include = "idEmployeeFKPK")] WorksIn employee) { var EmployeesController = new EmployeesController(); var availableEmployees = EmployeesController.AvailableEmployeesAndLider(project.idProjectPK); var WorksInController = new WorksInsController(); var lider = WorksInController.GetLiderID(project.idProjectPK); var aux = employee.idEmployeeFKPK; if (ModelState.IsValid) { if (project.startingDate < project.finishingDate) { db.Entry(project).State = EntityState.Modified; if (employee.idEmployeeFKPK == lider) { //Si el nuevo id es igual al ya asignado, entonces no hace nada. } else { //en caso contrario cambia los datos. if (lider == null) //si no hay lider asignado, crea una nueva relación con el líder elegido { employee.idProjectFKPK = project.idProjectPK; employee.role = 1; db.WorksIn.Add(employee); } else { //si ya hay uno asignado var exLider = db.Employee.Find(lider); exLider.availability = 0; //cambia la disponibilidad del antiguo a disponible. var modificating = db.WorksIn.Find(lider, project.idProjectPK); db.WorksIn.Remove(modificating); //remueve la relación del líder anterior (dado que no es modificable) employee.idProjectFKPK = project.idProjectPK; employee.role = 1; db.WorksIn.Add(employee); //y crea una nueva con el nuevo líder. } } db.SaveChanges(); return(RedirectToAction("Index")); } else { ModelState.AddModelError("startingDate", "La fecha de inicio no puede ser despues de la fecha de finalización."); } } ViewBag.idClientFK = new SelectList(db.Client, "idClientPK", "clientName", project.idClientFK); ViewBag.idEmployeeFKPK = new SelectList(availableEmployees, "idEmployeePK", "employeeName", lider); ViewBag.status = SelectListStatus(null); return(View(project)); }