private void RefreshHead(IActorRef requestor) { var requestors = new List <IActorRef>() { requestor }; void RefreshingHead(object message) { switch (message) { case EmployeesQuery.Response queryResult: this.head = queryResult.Employees.FirstOrDefault(); this.RefreshEmployees(requestors); break; case RefreshDepartmentInfo newInfo when newInfo.Department.DepartmentId == this.departmentInfo.DepartmentId: requestors.Add(this.Sender); break; default: this.Stash.Stash(); break; } } this.organizationEmployeesActor.Tell(EmployeesQuery.Create().WithId(this.departmentInfo.ChiefId)); this.Become(RefreshingHead); }
public static void List() { EmployeeContainer employeeContainer = EmployeeContainer.Inst; List <Employee> employees = employeeContainer.GetEmployees(); foreach (Employee emp in employees) { if (emp.GetType() == typeof(Developer)) { Console.WriteLine(emp.Id + ":" + Roles.Developer + "," + emp.FirstName + "," + emp.LastName + "," + emp.Age); } else if (emp.GetType() == typeof(ProjectManager)) { Console.WriteLine(emp.Id + ":" + Roles.ProjectManager + "," + emp.FirstName + "," + emp.LastName + "," + emp.Age); } else if (emp.GetType() == typeof(SoftwareTester)) { Console.WriteLine(emp.Id + ":" + Roles.SoftwareTester + "," + emp.FirstName + "," + emp.LastName + "," + emp.Age); } else if (emp.GetType() == typeof(Designer)) { Console.WriteLine(emp.Id + ":" + Roles.Designer + "," + emp.FirstName + "," + emp.LastName + "," + emp.Age); } } }
public static void Display() { EmployeeContainer employeeContainer = EmployeeContainer.Inst; List <Employee> employees = employeeContainer.GetEmployees(); Console.WriteLine("Employees in system:"); string roleType = String.Empty; foreach (Employee emp in employees) { if (emp.GetType() == typeof(Developer)) { Console.WriteLine(emp.Id + ":" + Roles.Developer + "," + emp.FirstName + "," + emp.LastName + "," + emp.Age); } else if (emp.GetType() == typeof(CEO)) { Console.WriteLine(emp.Id + ":" + Roles.CEO + "," + emp.FirstName + "," + emp.LastName + "," + emp.Age); } else if (emp.GetType() == typeof(SoftwareTester)) { Console.WriteLine(emp.Id + ":" + Roles.SoftwareTester + "," + emp.FirstName + "," + emp.LastName + "," + emp.Age); } else if (emp.GetType() == typeof(Designer)) { Console.WriteLine(emp.Id + ":" + Roles.Designer + "," + emp.FirstName + "," + emp.LastName + "," + emp.Age); } else if (emp.GetType() == typeof(ProjectManager)) { Console.WriteLine(emp.Id + ":" + Roles.ProjectManager + "," + emp.FirstName + "," + emp.LastName + "," + emp.Age); } } }
protected override void OnCommand(object message) { switch (message) { case GetEmployeeInfo _: var container = new EmployeeContainer(this.employeeMetadata, this.Self, this.employeeFeed, this.calendar); this.Sender.Tell(new GetEmployeeInfo.Response(container)); break; case GetPhoto _: this.photo.Forward(message); break; case UpdateEmployeeInformation newInfo when newInfo.Information.Metadata.EmployeeId == this.employeeMetadata.EmployeeId: this.photo.Tell(new PhotoActor.SetSource(newInfo.Information.Photo)); this.UpdateEmployeeMetadata(newInfo.Information.Metadata); break; //TODO: get rid of it somehow, now it monitors that actors were able to restore. case Terminated t: Context.Stop(this.Self); break; default: this.Unhandled(message); break; } }
static void Main(string[] args) { const string FILE_NAME = @"D:\employees.xml"; if (File.Exists(FILE_NAME)) { var employeeContainer = new EmployeeContainer(); try { employeeContainer.LoadXmlFile(FILE_NAME); Console.WriteLine("\na)\n"); employeeContainer.SortedEmployees(); Console.WriteLine("\nb)\n"); employeeContainer.GetFirstNEmployees(5); Console.WriteLine("\nc)\n"); employeeContainer.GetLastNEmployees(3); } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { Console.WriteLine("Can't found file"); } Console.ReadLine(); }
private bool IsEmployeeFormValid(out DateTime birthday, out DateTime employment) { string errorString = ""; int rez = 0; birthday = DateTime.MinValue; employment = DateTime.MinValue; if (EmployeeContainer.Photo == null) { errorString += "Фото не выбрано;\n"; } if (!EmployeeContainer.IsValid()) { errorString += "Пропущены обязатяельные поля;\n"; } if (!(int.TryParse(AccessInput.Text, out rez) && rez >= 0 && rez <= 255)) { errorString += "Уровень доступа должен быть числом в диапазоне [0;255];\n"; } else { EmployeeContainer.AccessLevel = (byte)rez; } if (!(EmployeeContainer.Login.TrimEnd() == "" ^ PasswordInput.Password != "")) { errorString += "Логин и пароль должны либо оба присутствовать, либо оба отсутствовать;\n"; } else { EmployeeContainer.Password = PasswordInput.Password; } if (!(DateTime.TryParse(BirthdayInput.Text, new CultureInfo("de-DE"), DateTimeStyles.None, out birthday) && DateTime.TryParse(EmploymentInput.Text, new CultureInfo("de-DE"), DateTimeStyles.None, out employment))) { errorString += "Введите время в формате dd.mm.yyyy;\n"; } else { EmployeeContainer.Birthday = birthday.ToShortDateString(); EmployeeContainer.DateOfEmployment = employment.ToShortDateString(); } if (Profession.SelectedIndex == -1) { errorString += "Профессия не выбрана;\n"; } else { EmployeeContainer.Profession = ((StringContainer)Profession.SelectedItem).ContainedString; } if (errorString != "") { MessageBox.Show(errorString); return(false); } return(true); }
private void ClearEmployeeWindow() { EmployeeContainer.Clear(); AccessInput.Text = ""; PasswordInput.Password = ""; BirthdayInput.Text = ""; EmploymentInput.Text = ""; Profession.SelectedIndex = -1; }
// GET: Deliveries/Delete/5 public ActionResult Delete(int id) { if (id < 1) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } EmployeeContainer.DeleteEmployee(id); return(RedirectToAction("Index")); }
public ActionResult Edit(Employee employee) { if (ModelState.IsValid) { EmployeeContainer.SaveEmployee(employee); return(RedirectToAction("Index")); } return(View(employee)); }
public void AddEmployee(string data) { var csp = new SHA512CryptoServiceProvider(); try { EmployeeContainer EC = JsonConvert.DeserializeObject <EmployeeContainer>(Encoding.UTF8.GetString(Convert.FromBase64String(data))); string sql = $"insert into Сотрудники(Имя,Фамилия,Отчество,[Id Должности],[Дата рождения],[Дата трудоустройства],[Адрес проживания],Прочее,Логин,Пароль,Фото,[Уровень доступа])" + $" values ('{EC.Name}','{EC.Surname}','{EC.Patronymic}',(select top(1) id from Должность where Наименование='{EC.Profession}'),'{EC.Birthday}','{EC.DateOfEmployment}'," + $"'{EC.Adress}','{EC.Other}',{(EC.Login == "" ? "null" : $"'{EC.Login}'")},{(EC.Password == "" ? "null" : $"'{Convert.ToBase64String(csp.ComputeHash(Encoding.UTF8.GetBytes(EC.Password)))}'")}," +
// GET: Suppliers public ActionResult Index() { var employees = EmployeeContainer.GetEmployees(); var markets = MarketContainer.GetMarkets(); foreach (var emp in employees) { emp.MarketName = markets.FirstOrDefault(x => x.ID == emp.MagazinID).Denumire; } return(View(employees)); }
public ActionResult Create(Employee employee) { if (ModelState.IsValid) { EmployeeContainer.SaveEmployee(employee); return(RedirectToAction("Index")); } var model = new EmployeeModel(); model.Employee = employee; model.Markets = MarketContainer.GetMarkets(); return(View(model)); }
// GET: Deliveries/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var model = new EmployeeModel(); model.Employee = EmployeeContainer.getEmployeeById((int)id); model.Markets = MarketContainer.GetMarkets(); return(View(model)); }
public void EditEmployee(object sender, EventArgs args) { Profession.ItemsSource = professions; Profession.DisplayMemberPath = "ContainedString"; editingMode = EditingWindowMode.Editing; TextOfEditingWindow.Text = "Редактирование"; var data = (EmployeeContainer)(sender as Control).DataContext; EmployeeContainer.CopyAllFields((EmployeeContainer)(sender as Control).DataContext); AccessInput.Text = data.AccessLevel.ToString(); PasswordInput.Password = data.Password; BirthdayInput.Text = data.Birthday; EmploymentInput.Text = data.DateOfEmployment; Profession.SelectedItem = professions.FirstOrDefault(x => x.ContainedString == EmployeeContainer.profession); EditingVindow.Visibility = Visibility.Visible; }
private async Task <IEnumerable <IActorRef> > GetUserFeeds(EmployeeContainer employee, CancellationToken token) { var feedsActor = this.actorFactory.ActorSelection(this.pathsBuilder.Get(WellKnownActorPaths.SharedFeeds)); var sharedFeedsResponse = await feedsActor.Ask <GetFeeds.Response>(new GetFeeds(employee.Metadata.EmployeeId), this.timeoutSettings.Timeout, token); var sharedFeeds = sharedFeedsResponse.Feeds.Values; var departmentActor = this.actorFactory.ActorSelection(this.pathsBuilder.Get(WellKnownActorPaths.Organization)); var department = await departmentActor.Ask <DepartmentsQuery.Response>(DepartmentsQuery.Create().WithId(employee.Metadata.DepartmentId)); var departmentFeeds = department.Departments.Select(x => x.Feed); return(sharedFeeds.Union(departmentFeeds)); }
public EmployeePermissionsEntry GetPermissions(EmployeeContainer employee) { if (employee == null) { return(EmployeePermissionsEntry.None); } var permissions = this.defaultPermission; if (this.EmployeePermissions.TryGetValue(employee.Metadata.EmployeeId, out var employeePermissions)) { permissions |= employeePermissions; } return(permissions | this.GetDepartmentPermissions(employee.Metadata.DepartmentId)); }
public ActionResult Create(Employee employee) { if (ModelState.IsValid) { if ((int)Session["role"] > SessionAccessor.getUserRole(employee.Functie)) { EmployeeContainer.SaveEmployee(employee); return(RedirectToAction("Index")); } } var model = new EmployeeModel(); model.Employee = employee; model.Markets = MarketContainer.GetMarkets(); return(View(model)); }
public static void RoleList(string operation) { EmployeeContainer employeeContainer = EmployeeContainer.Inst; List <Employee> employees = employeeContainer.GetEmployees(); if (operation.Equals("PMLIST", StringComparison.CurrentCultureIgnoreCase)) { foreach (ProjectManager p in employees.OfType <ProjectManager>()) { Console.WriteLine(p.Id + ":" + p.FirstName + "," + p.LastName + "," + p.Age + "," + p.Project); } } else if (operation.Equals("DEVLIST", StringComparison.CurrentCultureIgnoreCase)) { foreach (Developer d in employees.OfType <Developer>()) { Console.WriteLine(d.Id + ":" + d.FirstName + "," + d.LastName + "," + d.Age + "," + d.Project + "," + d.IsStudent); } } else if (operation.Equals("STLIST", StringComparison.CurrentCultureIgnoreCase)) { foreach (SoftwareTester s in employees.OfType <SoftwareTester>()) { Console.WriteLine(s.Id + ":" + s.FirstName + "," + s.LastName + "," + s.Age + "," + s.Project + "," + s.UsesAutomatedTests); } } else if (operation.Equals("DSNRLIST", StringComparison.CurrentCultureIgnoreCase)) { foreach (Designer d in employees.OfType <Designer>()) { Console.WriteLine(d.Id + ":" + d.FirstName + "," + d.LastName + "," + d.Age + "," + d.Project + "," + d.CanDraw); } } else if (operation.Equals("CEOLIST", StringComparison.CurrentCultureIgnoreCase)) { foreach (CEO c in employees.OfType <CEO>()) { Console.WriteLine(c.Id + ":" + c.FirstName + "," + c.LastName + "," + c.Age + "," + c.CeoYears); } } }
public ActionResult PasswordRecovery(LoginModel logmodel) { try { if (!String.IsNullOrWhiteSpace(logmodel.Email)) { var body = "<p>{0}{1}</p>"; var message = new MailMessage(); var password = EmployeeContainer.getPasswordByEmail(logmodel.Email); if (String.IsNullOrWhiteSpace(password)) { logmodel.Message = "Email-ul nu exista"; return(View(logmodel)); } message.To.Add(new MailAddress("*****@*****.**")); message.From = new MailAddress("*****@*****.**"); message.Subject = "No-reply password recovery"; message.Body = string.Format(body, "Parola dumneavoastra este: ", password); message.IsBodyHtml = true; using (var smtp = new SmtpClient()) { smtp.UseDefaultCredentials = false; smtp.Credentials = new NetworkCredential("*****@*****.**", "123qwe!@#");; smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.EnableSsl = true; smtp.Send(message); return(RedirectToAction("Login")); } } } catch (Exception ex) { logmodel.Message = "Nu s-a putut trimite mail-ul"; } return(View(logmodel)); }
public EmployeePermissionsEntry GetPermissions(EmployeeContainer targetEmployee) { if (targetEmployee == null) { Log.Debug("Null target employee passed"); return(EmployeePermissionsEntry.None); } var permissions = this.defaultPermission; if (this.EmployeePermissions.TryGetValue(targetEmployee.Metadata.EmployeeId, out var employeePermissions)) { return(permissions | employeePermissions); } if (this.DepartmentPermissions.TryGetValue(targetEmployee.Metadata.DepartmentId, out var departmentPermissions)) { return(permissions | departmentPermissions); } return(permissions); }
protected override void OnCommand(object message) { switch (message) { case GetEmployeeInfo _: var container = new EmployeeContainer(this.employeeMetadata, this.Self, this.employeeFeed, this.calendar); this.Sender.Tell(new GetEmployeeInfo.Response(container)); break; case GetPhoto _: this.photo.Forward(message); break; case UpdateEmployeeInformation newInfo when newInfo.Information.Metadata.EmployeeId == this.employeeMetadata.EmployeeId: this.photo.Tell(new PhotoActor.SetSource(newInfo.Information.Photo)); this.UpdateEmployeeMetadata(newInfo.Information.Metadata); break; default: this.Unhandled(message); break; } }
public static void Remove() { EmployeeContainer employeeContainer = EmployeeContainer.Inst; List <Employee> employees = employeeContainer.GetEmployees(); Validation validation = new Validation(); string id = String.Empty; do { Console.Write("Enter id of employee you want to delete:"); id = Console.ReadLine(); validation.CheckIntegerInput(id); } while (!validation.inputIsValid); Int32.TryParse(id, out int intId); for (int i = employees.Count - 1; i >= 0; i--) { if (employees[i].Id == intId) { employeeContainer.DeleteEmployee(employees[i]); Console.WriteLine("Employee deleted"); } } }
public static void Add() { string name = String.Empty; string lastName = String.Empty; string age = String.Empty; string role = String.Empty; string ceoYears = String.Empty; string projectName = String.Empty; string checkBool = String.Empty; bool boolValue = false; EmployeeContainer container = EmployeeContainer.Inst; Validation validation = new Validation(); EmployeeIdGeneratorService IdGenerator = EmployeeIdGeneratorService.Inst; do { Console.Write("Add:"); role = Console.ReadLine(); validation.CheckRoleInput(role); } while (!validation.inputIsValid); do { Console.Write("Enter name:"); name = Console.ReadLine(); validation.CheckInput(name); } while (!validation.inputIsValid); do { Console.Write("Enter last name:"); lastName = Console.ReadLine(); validation.CheckInput(lastName); } while (!validation.inputIsValid); do { Console.Write("Enter age:"); age = Console.ReadLine(); validation.CheckIntegerInput(age); } while (!validation.inputIsValid); if (role == "CEO") { do { Console.Write("Enter years of being CEO:"); ceoYears = Console.ReadLine(); validation.CheckIntegerInput(ceoYears); } while (!validation.inputIsValid); Int32.TryParse(age, out int ageInt); Int32.TryParse(ceoYears, out int ceoYearsInt); var id = IdGenerator.IncId(); Employee employee = new CEO(id, name, lastName, ageInt, ceoYearsInt); container.AddCEO(employee); } else if (role == "PM") { do { Console.Write("Enter project name:"); projectName = Console.ReadLine(); validation.CheckInput(projectName); } while (!validation.inputIsValid); Int32.TryParse(age, out int ageInt); var id = IdGenerator.IncId(); Employee employee = new ProjectManager(id, name, lastName, ageInt, projectName); container.AddEmployee(employee); } else if (role == "DEV") { do { Console.Write("Enter project name:"); projectName = Console.ReadLine(); validation.CheckInput(projectName); } while (!validation.inputIsValid); do { Console.Write("Is developer a student?"); checkBool = Console.ReadLine(); boolValue = validation.CheckBoolInput(checkBool); }while (!validation.inputIsValid); Int32.TryParse(age, out int ageInt); var id = IdGenerator.IncId(); Employee employee = new Developer(id, name, lastName, ageInt, projectName, boolValue); container.AddEmployee(employee); } else if (role == "DSNR") { do { Console.Write("Enter project name:"); projectName = Console.ReadLine(); validation.CheckInput(projectName); } while (!validation.inputIsValid); do { Console.Write("Can the designer draw?"); checkBool = Console.ReadLine(); boolValue = validation.CheckBoolInput(checkBool); }while (!validation.inputIsValid); Int32.TryParse(age, out int ageInt); var id = IdGenerator.IncId(); Employee employee = new Designer(id, name, lastName, ageInt, projectName, boolValue); container.AddEmployee(employee); } else if (role == "ST") { do { Console.Write("Enter project name:"); projectName = Console.ReadLine(); validation.CheckInput(projectName); } while (!validation.inputIsValid); do { Console.Write("Is tester using automated tests?"); checkBool = Console.ReadLine(); boolValue = validation.CheckBoolInput(checkBool); }while (!validation.inputIsValid); Int32.TryParse(age, out int ageInt); var id = IdGenerator.IncId(); Employee employee = new SoftwareTester(id, name, lastName, ageInt, projectName, boolValue); container.AddEmployee(employee); } }
public ActionResult Home() { if (SessionAccessor.LoggedUser == null) { return(RedirectToAction("Login")); } var model = new HomeModel(); switch (SessionAccessor.getUserRole()) { case 0: // Funizor var pendingDeliveries = DeliveryContainer.getNrOfPendingDeliveries(); model.dashboardMessage1 = "Aveti de făcut " + pendingDeliveries + (pendingDeliveries > 1 ? " livrari" : " livrare"); var initiatedDeliveries = DeliveryContainer.getNrOfInitiatedDeliveries(); var deliveredDeliveries = DeliveryContainer.getNrOfDeliveredDeliveries(); var refusedDeliveries = DeliveryContainer.getNrOfRefusedDeliveries(); model.chart = "" + initiatedDeliveries + "," + pendingDeliveries + "," + deliveredDeliveries + "," + refusedDeliveries; break; case 1: // Angajat var totalCategories = CategoryContainer.getNrOfCategories(); model.dashboardMessage1 = "Gestionaţi " + totalCategories + (totalCategories > 1 ? " categorii" : " categorie"); var primaryCategories = CategoryContainer.getNrOfPrimaryCategories(); model.chart = "" + primaryCategories + "," + (totalCategories - primaryCategories); var totalProducts = ProductsContainer.getNrOfProducts(); model.dashboardMessage2 = "Gestionaţi " + totalProducts + (totalProducts > 1 ? " produse" : " produs"); var products3 = ProductsContainer.getNrOfProductsExpiredDays(3); var products7 = ProductsContainer.getNrOfProductsExpiredDays(7); var products30 = ProductsContainer.getNrOfProductsExpiredDays(30); var products0 = ProductsContainer.getNrOfProductsExpired(); model.chart2 = "" + products3 + "," + products7 + "," + products30 + "," + products0; break; case 2: // Manager var pendingDeliveries2 = DeliveryContainer.getNrOfPendingDeliveries(); var initiatedDeliveries2 = DeliveryContainer.getNrOfInitiatedDeliveries(); var deliveredDeliveries2 = DeliveryContainer.getNrOfDeliveredDeliveries(); var refusedDeliveries2 = DeliveryContainer.getNrOfRefusedDeliveries(); model.dashboardMessage1 = "Aveti " + deliveredDeliveries2 + (deliveredDeliveries2 > 1 ? " livrari" : " livrare") + " efectuate"; model.chart = "" + initiatedDeliveries2 + "," + pendingDeliveries2 + "," + deliveredDeliveries2 + "," + refusedDeliveries2; var nrEmployees = EmployeeContainer.getNrOfEmployees(); var nrManagers = EmployeeContainer.getNrOfEmployees(); var nrBosses = EmployeeContainer.getNrOfBosses(); var nrSuppliers = EmployeeContainer.getNrOfEmployees(); model.dashboardMessage2 = "Sunteţi manager pentru " + nrEmployees + (nrEmployees > 1 ? " angajaţi" : " angajat"); model.chart2 = "" + nrEmployees + "," + nrManagers + "," + nrBosses + "," + nrSuppliers; break; case 3: // sef var suppliers = SupplierContainer.getNrOfSuppliers(); var cities = SupplierContainer.getTopSuppliersCities(5); model.chart = ""; model.cities = ""; foreach (var city in cities) { model.cities += city + ','; model.chart += SupplierContainer.getNrOfSupplierByCity(city).ToString() + ","; } if (model.cities.Length > 1) { model.cities = model.cities.Substring(0, model.cities.Length - 1); } if (model.chart.Length > 1) { model.chart = model.chart.Substring(0, model.chart.Length - 1); } model.dashboardMessage1 = "Aveti " + suppliers + (suppliers > 1 ? " furnizori" : " furnizor"); var markets = MarketContainer.getNrOfMarkets(); var marketsCities = MarketContainer.getTopMarketsCities(5); model.chart2 = ""; model.cities2 = ""; foreach (var city in marketsCities) { model.cities2 += city + ','; model.chart2 += MarketContainer.getNrOfMarketsByCity(city).ToString() + ","; } model.cities2 = model.cities2.Substring(0, model.cities2.Length - 1); model.chart2 = model.chart2.Substring(0, model.chart2.Length - 1); model.dashboardMessage2 = "Aveti " + markets + (markets > 1 ? " magazine" : " magazin"); break; } return(View(model)); }
public Response(EmployeeContainer employee) { this.Employee = employee; }