Ejemplo n.º 1
0
        private void UpdateWorker()
        {
            PersonProxy workerToUpdate = new PersonProxy();

            workerToUpdate.ID         = int.Parse(dataGridView1.CurrentRow.Cells["PersonId"].Value.ToString());
            workerToUpdate.LastName   = dataGridView1.CurrentRow.Cells["PersonLastName"].Value.ToString();
            workerToUpdate.FirstName  = dataGridView1.CurrentRow.Cells["PersonFirstName"].Value.ToString();
            workerToUpdate.Patronymic = dataGridView1.CurrentRow.Cells["PersonPatronymic"].Value.ToString();
            switch (dataGridView1.CurrentRow.Cells["PersonGender"].Value.ToString())
            {
            case "Муж":
            {
                workerToUpdate.Gender = true;
                break;
            }

            case "Жен":
            {
                workerToUpdate.Gender = false;
                break;
            }
            }
            workerToUpdate.BirthDate =
                DateTime.Parse(dataGridView1.CurrentRow.Cells["PersonBirthDate"].Value.ToString());

            WorkerInfoForm workerInfo = new WorkerInfoForm(workerToUpdate, true);

            //workerInfo.MdiParent = this.MdiParent;
            workerInfo.Text = "Редактирование сотрудника";
            if (workerInfo.ShowDialog() == DialogResult.OK)
            {
                FillDataGridView();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Сохранение введеной смены
        /// </summary>
        private void SetWorkedTimeToTimetable()
        {
            //проходим по каждой записи
            //foreach (DataGridViewRow row in dataGridView1.Rows)
            //{
            object rowValue = dataGridView1.CurrentRow.Cells[0].Value;       //ТН работника

            if (rowValue != null)
            {
                Person person = PersonProxy.SearchPersonById(int.Parse(rowValue.ToString()));     //текущий работник
                Dictionary <DateTime, string> timeWorked = new Dictionary <DateTime, string>();   //пара Дата-Время

                for (int i = 2; i < dataGridView1.ColumnCount - 1; i++)
                {
                    object timeValue = dataGridView1.CurrentRow.Cells[i].Value;
                    if (timeValue != null)
                    {
                        DateTime date = new DateTime(int.Parse(Year), Month, dataGridView1.CurrentRow.Cells[i].ColumnIndex - 1).Date;
                        timeWorked.Add(date, timeValue.ToString());     //добавляем дату и отработанное время
                        PersonProxy.SetWorkingTime(timeWorked, person); //отправляем данные на обработку
                    }
                }
                //}
            }
        }
        public ValidatePageViewModel()
        {
            PocoPerson = new Person()
            {
                Name     = "AAAAAAAA",
                LastName = "BBBBBBBBBB"
            };

            PersonProxy person = new PersonProxy(PocoPerson)
            {
                Name      = PocoPerson.Name,
                LastName  = PocoPerson.LastName,
                Validator = i =>
                {
                    var u = i as PersonProxy;
                    if (string.IsNullOrEmpty(u.Name))
                    {
                        u.Properties[nameof(u.Name)].Errors.Add("First name is required");
                    }
                    else if (u.Name.Length < 3)
                    {
                        u.Properties[nameof(u.Name)].Errors.Add("First name is less then 3 symbols");
                    }
                    if (string.IsNullOrEmpty(u.LastName))
                    {
                        u.Properties[nameof(u.LastName)].Errors.Add("Last name is required");
                    }
                },
            };

            CurPerson = person;
        }
Ejemplo n.º 4
0
    public List <PersonProxy> GetPersonsByDepartmentId(int DepartmentId)
    {
        try
        {
            BPerson            PersonBusinesss = new BPerson();
            List <PersonProxy> proxys          = new List <PersonProxy>();
            var persons = PersonBusinesss.GetPersonsByDirecetDepartmentId(DepartmentId);
            foreach (var person in persons)
            {
                PersonProxy proxy = new PersonProxy();
                proxy.ID             = person.ID;
                proxy.FirstName      = person.FirstName;
                proxy.LastName       = person.LastName;
                proxy.BarCode        = person.BarCode;
                proxy.Active         = person.Active;
                proxy.IsDeleted      = person.IsDeleted;
                proxy.CardNum        = person.CardNum;
                proxy.EmploymentDate = person.EmploymentDate;
                proxy.ParentPath     = person.Department.ParentPath;
                proxys.Add(proxy);
            }

            return(proxys);
        }
        catch (UIValidationExceptions ex)
        {
            this.exceptionHandler.ApiHandleException("ProfileServiceProvider", ex);
            throw ex;
        }
        catch (Exception ex)
        {
            this.exceptionHandler.ApiHandleException("ProfileServiceProvider", ex);
            throw ex;
        }
    }
Ejemplo n.º 5
0
        public WorkerInfoForm(PersonProxy workerToUpdate, bool edit)
        {
            InitializeComponent();

            Worker = workerToUpdate;

            _edit = edit;
        }
Ejemplo n.º 6
0
        public FilterForm(DataGridView dgv)
        {
            InitializeComponent();
            PersonProxy = new PersonProxy();
            FillGrid();

            DataGrid = dgv;
        }
Ejemplo n.º 7
0
    public Person FindById(int id)
    {
        // Notice we are creating PersonProxy and not Person
        Person person = new PersonProxy();

        // Set person properties based on data from the database
        return(person);
    }
Ejemplo n.º 8
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            PersonProxy workerToDelete = new PersonProxy();

            workerToDelete.ID = int.Parse(dataGridView1.CurrentRow.Cells["PersonId"].Value.ToString());
            workerToDelete.DeletePerson();

            FillDataGridView();
        }
Ejemplo n.º 9
0
        public PersonEntity Create(ICreationSpec<PersonEntity, PersonConstructorParameters> spec)
        {
            PersonProxy person = new PersonProxy(new PersonDto { PersonId = _idDao.Generate("Person") });
            person.Transient = true;

            spec.Satisfied(person);

            return person;
        }
Ejemplo n.º 10
0
        public WorkerInfoForm(bool edit)
        {
            InitializeComponent();

            _edit = edit;

            Worker = new PersonProxy();

            cmbxGender.SelectedIndex = 0;
        }
Ejemplo n.º 11
0
        private void filterForm_PersonSelected(object sender, FilterEventArgs e)
        {
            if (e is FilterEventArgs)
            {
                FilterEventArgs filterEventArgs = e as FilterEventArgs;
                Person          person          = PersonProxy.SearchPersonById(filterEventArgs.ID);

                dataGridView1.Rows.Add(person.ID, person.LastName + " " + person.FirstName + " " + person.Patronymic);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Автозаполнение таблицы работниками
        /// </summary>
        private void FillGrid(bool clear)
        {
            //если таблица пуста - добавляем первого работника
            if (dataGridView1.RowCount <= 1)
            {
                if (!clear)
                {
                    if (NetProxy.IsShifted(int.Parse(Year), Month))
                    {
                        foreach (Person person in PersonProxy.GetPersons())
                        {
                            dataGridView1.Rows.Add(person.ID, person.LastName + " " + person.FirstName + " " + person.Patronymic);
                        }
                    }
                }
                else
                {
                    foreach (Person person in PersonProxy.GetPersons())
                    {
                        dataGridView1.Rows.Add(person.ID, person.LastName + " " + person.FirstName + " " + person.Patronymic);
                    }
                }
            }
            else
            {
                //проверка на уже введеного сотрудника
                //во избежание дублирования
                int rowCount = dataGridView1.RowCount - 1;

                foreach (Person person in PersonProxy.GetPersons())
                {
                    bool exists = false;
                    for (int i = 0; i < rowCount; i++)
                    {
                        object idCellValue = dataGridView1.Rows[i].Cells[0].Value;

                        if (idCellValue != null)
                        {
                            int cellValue = int.Parse(idCellValue.ToString());

                            if (cellValue != person.ID)
                            {
                                continue;
                            }
                            exists = true;
                            break;
                        }
                    }
                    if (!exists)
                    {
                        dataGridView1.Rows.Add(person.ID, person.LastName + " " + person.FirstName + " " + person.Patronymic);
                    }
                }
            }
        }
Ejemplo n.º 13
0
        public IEnumerable<PersonEntity> List(ISelectionPredicateSpec<PersonEntity, Operator> spec)
        {
            IEnumerable<PersonDto> dtos = _personDao.GetList(spec.Predicate());

            foreach (PersonDto dto in dtos)
            {
                PersonProxy person = new PersonProxy(dto);

                yield return person;
            }
        }
        public async override Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state)
        {
            currentPerson = parameter == null ? new Person()
            {
                Id = Guid.NewGuid().ToString()
            } : parameter as Person;

            var temp = new PersonProxy(currentPerson)
            {
                Name      = currentPerson.Name,
                LastName  = currentPerson.LastName,
                Validator = i =>
                {
                    var u = i as PersonProxy;
                    if (string.IsNullOrEmpty(u.Name))
                    {
                        u.Properties[nameof(u.Name)].Errors.Add("First name is required");
                    }
                    else if (u.Name.Length < 3)
                    {
                        u.Properties[nameof(u.Name)].Errors.Add("First name is less then 3 symbols");
                    }
                    if (string.IsNullOrEmpty(u.LastName))
                    {
                        u.Properties[nameof(u.LastName)].Errors.Add("Last name is required");
                    }
                    if (string.IsNullOrEmpty(u.Email))
                    {
                        u.Properties[nameof(u.Email)].Errors.Add("Email is required.");
                    }
                    else if (!new System.ComponentModel.DataAnnotations.EmailAddressAttribute().IsValid(u.Email))
                    {
                        u.Properties[nameof(u.Email)].Errors.Add("A valid Email is required.");
                    }
                },
            };

            TempPerson = temp;
            TempPerson.Validate();

            if (parameter == null)
            {
                currentState = States.Add;
                Title        = "Adding new person";
            }
            else if (parameter != null)
            {
                currentState = States.Edit;
                Title        = $"Editting {TempPerson.FullName}";
            }
            await Task.CompletedTask;
        }
Ejemplo n.º 15
0
        public PersonEntity Find(PersonId id)
        {
            PersonDto dto = _personDao.Find(id.Value);

            if (dto == null)
            {
                return null;
            }

            PersonProxy person = new PersonProxy(dto);

            return person;
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Заполнение таблицы списком сотрудников,
        /// отсоритованных по табельному номеру
        /// </summary>
        private void FillDataGridView()
        {
            if (dataGridView1.Rows.Count > 0)
            {
                dataGridView1.Rows.Clear();
            }

            foreach (Person person in PersonProxy.GetPersons())
            {
                dataGridView1.Rows.Add(person.ID, person.LastName, person.FirstName, person.Patronymic,
                                       person.Gender ? "Муж" : "Жен", person.BirthDate.ToShortDateString());
            }
        }
Ejemplo n.º 17
0
        public TimetableForm(string year, int month)
        {
            InitializeComponent();
            PersonProxy = new PersonProxy();
            NetProxy    = new NetProxy();

            Year  = year;
            Month = month;

            PaintGrid();
            //FilterForm = Application.OpenForms["filterForm"] as FilterForm;
            //FilterForm = new FilterForm();
            //FilterForm.PersonSelected += new EventHandler<FilterEventArgs>(filterForm_PersonSelected);
        }
Ejemplo n.º 18
0
        public HomeViewModel(Account person)
        {
            AddPersonCommand       = new RelayCommand(AddPersonExecute, AddPersonCanExecute);
            ModifyPersonCommand    = new RelayCommand(ModifyPersonExecute, ModifyPersonCanExecute);
            DeletePersonCommand    = new RelayCommand(DeletePersonExecute, DeletePersonCanExecute);
            PersonDetailsCommand   = new RelayCommand(PersonDetailsExecute, PersonDetailsCanExecute);
            DuplicatePersonCommand = new RelayCommand(DuplicatePersonExecute, DuplicatePersonCanExecute);
            UndoPersonCommand      = new RelayCommand(UndoPersonExecute, UndoPersonCanExecute);
            RedoPersonCommand      = new RelayCommand(RedoPersonExecute, RedoPersonCanExecute);
            ShowPeopleCommand      = new RelayCommand(ShowPeopleExecute, ShowPeopleCanExecute);
            SearchPersonCommand    = new RelayCommand(SearchPersonExecute, SearchPersonCanExecute);

            AddEventCommand     = new RelayCommand(AddEventExecute, AddEventCanExecute);
            ModifyEventCommand  = new RelayCommand(ModifyEventExecute, ModifyEventCanExecute);
            DeleteEventCommand  = new RelayCommand(DeleteEventExecute, DeleteEventCanExecute);
            EventDetailsCommand = new RelayCommand(EventDetailsExecute, EventDetailsCanExecute);
            ShowEventsCommand   = new RelayCommand(ShowEventsExecute, ShowEventsCanExecute);

            CreateAccountCommand         = new RelayCommand(CreateAccountExecute, CreateAccountCanExecute);
            ModifyAccountCommand         = new RelayCommand(ModifyAccountExecute, ModifyAccountCanExecute);
            ModifyPersonalAccountCommand = new RelayCommand(ModifyPersonalAccountExecute, ModifyPersonalAccountCanExecute);
            DeleteAccountCommand         = new RelayCommand(DeleteAccountExecute, DeleteAccountCanExecute);
            ShowAccountsCommand          = new RelayCommand(ShowAccountsExecute, ShowAccountsCanExecute);

            LogOutCommand = new RelayCommand(LogOutExecute, LogOutCanExecute);

            InstanceContext instanceContext = new InstanceContext(this);

            _personProxy  = PersonProxy.ConnectToPersonService(instanceContext);
            _accountProxy = AccountProxy.ConnectToAccountService(instanceContext);
            _eventProxy   = EventProxy.ConnectToAccountService(instanceContext);

            _personProxy.Subscribe();
            _accountProxy.Subscribe();
            _eventProxy.Subscribe();

            LoggedInAccount = person;
            LogText         = LoggerHelper.Instance.ClientLogBuilder;

            PeopleList   = new ObservableCollection <Person>(_personProxy.GetAllPeople());
            AccountsList = new ObservableCollection <Account>(_accountProxy.GetAllAccounts());
            EventsList   = new ObservableCollection <Event>(_eventProxy.GetAllEvents());

            ListOfCommands = new List <BaseCommand>();
            CurrentCommand = 0;

            logger.Info("HomeViewModel constructor success.");
            LoggerHelper.Instance.LogMessage($"HomeViewModel constructor success.", EEventPriority.INFO, EStringBuilder.CLIENT);
            LogText = LoggerHelper.Instance.ClientLogBuilder;
        }
        private void AddPersonExecute(object parameter)
        {
            Object[] parameters = parameter as Object[];
            PersonToAdd = new Person()
            {
                FirstName = parameters[0] as String,
                LastName  = parameters[1] as String,
                JMBG      = parameters[2] as String,
            };

            Person addedPerson = null;

            try
            {
                addedPerson = PersonProxy.AddPerson(PersonToAdd);
            }
            catch (Exception e)
            {
                logger.Error("AddPerson error on server.");
                LoggerHelper.Instance.LogMessage($"AddPerson error on server. Message: {e.Message}", EEventPriority.ERROR, EStringBuilder.CLIENT);
            }

            if (addedPerson != null)
            {
                CommandInvoker.RegisterCommand(new AddPersonCommand(new PersonCommandReciever(), PersonToAdd, PersonProxy));

                logger.Error("Person successfully added.");
                LoggerHelper.Instance.LogMessage($"Person successfully added.", EEventPriority.INFO, EStringBuilder.CLIENT);

                UserControl uc = parameters[3] as UserControl;
                CurrentWindow = Window.GetWindow(uc);
                CurrentWindow.Close();
            }
            else
            {
                logger.Error("Error on server or username already exists.");
                LoggerHelper.Instance.LogMessage($"Error on server or username already exists.", EEventPriority.ERROR, EStringBuilder.CLIENT);

                UserControl uc = parameters[3] as UserControl;
                CurrentWindow = Window.GetWindow(uc);
                CurrentWindow.Close();
            }
        }
        private void SetTempPerson(object person)
        {
            currentPerson = person == null ? new Person()
            {
                Id = Guid.NewGuid().ToString()
            } : person as Person;

            var temp = new PersonProxy(currentPerson)
            {
                Name        = currentPerson.Name,
                LastName    = currentPerson.LastName,
                Email       = currentPerson.Email,
                DateOfBirth = currentPerson.DateOfBirth,
                Validator   = i =>
                {
                    var u = i as PersonProxy;
                    if (string.IsNullOrEmpty(u.Name))
                    {
                        u.Properties[nameof(u.Name)].Errors.Add("FirstName is required");
                    }
                    else if (u.Name.Length < 3)
                    {
                        u.Properties[nameof(u.Name)].Errors.Add("FirstName must be more then 3 symbols");
                    }
                    if (string.IsNullOrEmpty(u.LastName))
                    {
                        u.Properties[nameof(u.LastName)].Errors.Add("FirstName is required");
                    }
                    if (string.IsNullOrEmpty(u.Email))
                    {
                        u.Properties[nameof(u.Email)].Errors.Add("Email is required");
                    }
                    else if (!new System.ComponentModel.DataAnnotations.EmailAddressAttribute().IsValid(u.Email))
                    {
                        u.Properties[nameof(u.Email)].Errors.Add("Must consist . and @");
                    }
                }
            };

            TempPerson = temp;
            TempPerson.Validate();
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Заполнение таблицы смен
        /// </summary>
        private void FillTheShifts()
        {
            //Проходим каждый ряд работника
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (row.Cells[0].Value != null)
                {
                    Person person = PersonProxy.SearchPersonById(int.Parse(row.Cells[0].Value.ToString()));     //текущий работник

                    dataGridView2.DataSource = NetProxy.GetShifts(person, int.Parse(Year), Month);

                    IEnumerable <Net> shifts = NetProxy.GetShifts(person, int.Parse(Year), Month);   //список всех отработанных дней

                    //проходим по каждой смене
                    foreach (Net shift in shifts)
                    {
                        foreach (DataGridViewColumn column in dataGridView1.Columns)
                        {
                            //сверяем отработанную дату с датой, введеной в таблицу
                            if (column.HeaderText.Contains(' '))
                            {
                                string headerDate = column.HeaderText.Split(' ')[0];
                                if (headerDate.Length <= 2)
                                {
                                    if (int.Parse(headerDate) == shift.DateWorked.Day)
                                    {
                                        //если дата совпадает - вводим значение
                                        row.Cells[column.Index].Value = shift.TimeWorked;
                                    }
                                }
                            }
                        }
                    }

                    CountTotalTime();
                    person = null;
                }
            }
        }
        private void ModifyPersonExecute(object parameter)
        {
            Object[] parameters = parameter as Object[];

            Person modifiedPerson = null;

            try
            {
                modifiedPerson = PersonProxy.ModifyPerson(PersonToModify);
            }
            catch (Exception e)
            {
                logger.Error($"Error while modifying. Message: {e.Message}");
                LoggerHelper.Instance.LogMessage($"Error while modifying. Message: {e.Message}", EEventPriority.ERROR, EStringBuilder.CLIENT);
            }

            if (modifiedPerson != null)
            {
                CommandInvoker.RegisterCommand(new AddPersonCommand(new PersonCommandReciever(), modifiedPerson, PersonProxy));

                logger.Info("Person successfully modified.");
                LoggerHelper.Instance.LogMessage($"Person successfully modified.", EEventPriority.INFO, EStringBuilder.CLIENT);

                UserControl uc     = parameters[0] as UserControl;
                Window      window = Window.GetWindow(uc);
                window.Close();
            }
            else
            {
                logger.Error("Error while modifying - server side");
                LoggerHelper.Instance.LogMessage($"Error while modifying - server side", EEventPriority.ERROR, EStringBuilder.CLIENT);

                UserControl uc     = parameters[0] as UserControl;
                Window      window = Window.GetWindow(uc);
                window.Close();
            }
        }
        private void DeletePersonConfirmationExecute(object obj)
        {
            Person deletedPerson = PersonProxy.DeletePerson(PersonToBeDeleted);

            if (deletedPerson != null)
            {
                CommandInvoker.RegisterCommand(new DeletePersonCommand(new PersonCommandReciever(), deletedPerson, PersonProxy));

                logger.Error("Person successfully deleted.");
                LoggerHelper.Instance.LogMessage($"Person successfully deleted.", EEventPriority.INFO, EStringBuilder.CLIENT);
                object[] parameters    = obj as object[];
                Window   currentWindow = Window.GetWindow((UserControl)parameters[0]);
                currentWindow.Close();
            }
            else
            {
                logger.Error("Person successfully deleted.");
                LoggerHelper.Instance.LogMessage($"Person successfully deleted.", EEventPriority.INFO, EStringBuilder.CLIENT);

                object[] parameters    = obj as object[];
                Window   currentWindow = Window.GetWindow((UserControl)parameters[0]);
                currentWindow.Close();
            }
        }
Ejemplo n.º 24
0
    public PersonProxy GetPersonByMelliCode(string code)
    {
        try
        {
            BPerson PersonBusinesss = new BPerson();

            var person = PersonBusinesss.GetByBarcode(code);
            if (person == null)
            {
                return(new PersonProxy());
            }

            PersonProxy proxy = new PersonProxy();
            proxy.ID             = person.ID;
            proxy.FirstName      = person.FirstName;
            proxy.LastName       = person.LastName;
            proxy.BarCode        = person.BarCode;
            proxy.Active         = person.Active;
            proxy.IsDeleted      = person.IsDeleted;
            proxy.CardNum        = person.CardNum;
            proxy.EmploymentDate = person.EmploymentDate;
            proxy.ParentPath     = person.Department.ParentPath;

            return(proxy);
        }
        catch (UIValidationExceptions ex)
        {
            this.exceptionHandler.ApiHandleException("ProfileServiceProvider", ex);
            throw ex;
        }
        catch (Exception ex)
        {
            this.exceptionHandler.ApiHandleException("ProfileServiceProvider", ex);
            throw ex;
        }
    }
 public ResponsiblePersonProxy(PersonProxy person)
 {
     // todo
     this.person = person;
 }
Ejemplo n.º 26
0
        public override Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state)
        {
            if (parameter == null)
            {
                if (CachedAddingPerson != null)
                {
                    //Если последняя операций была Edit, то нужно вернуть пёрсона из операций Add
                    //Иначе продолжить создавать нового пёрсона
                    if (CurrentState == States.Edit)
                    {
                        Title        = "Adding new person";
                        CurrentState = States.Add;
                        TempPerson   = CachedAddingPerson;
                    }

                    return(Task.CompletedTask);
                }
            }
            else
            {
                if (CachedEditingPerson != null)
                {
                    //Если ID кэшировнного редактируемого пёрсона совпадает с ID входящим пёрсоном
                    //то значит редактируемый пёрсон в кэше и входящий одни и тот же пёрсон
                    if (CahcedID == (parameter as Person).Id)
                    {
                        //Если последняя операций была Add, то нужно вернуть пёрсона из операций Edit
                        //Иначе продолжить редактировать пёрсона
                        if (CurrentState == States.Add)
                        {
                            CurrentState = States.Edit;
                            TempPerson   = CachedEditingPerson;
                            Title        = $"Editing {TempPerson.FullName}";
                        }

                        return(Task.CompletedTask);
                    }
                    //Иначе это разные пёрсоны то тогда удалить хранящийся ID
                    else
                    {
                        CahcedID = null;
                    }
                }
            }

            currentPerson = parameter == null ? new Person()
            {
                Id = Guid.NewGuid().ToString()
            } : parameter as Person;

            var temp = new PersonProxy(currentPerson)
            {
                Name        = currentPerson.Name,
                LastName    = currentPerson.LastName,
                Email       = currentPerson.Email,
                DateOfBirth = currentPerson.DateOfBirth,
                Validator   = i =>
                {
                    var u = i as PersonProxy;
                    if (string.IsNullOrEmpty(u.Name))
                    {
                        u.Properties[nameof(u.Name)].Errors.Add("FirstName is required");
                    }
                    else if (u.Name.Length < 3)
                    {
                        u.Properties[nameof(u.Name)].Errors.Add("FirstName must be more then 3 symbols");
                    }
                    if (string.IsNullOrEmpty(u.LastName))
                    {
                        u.Properties[nameof(u.LastName)].Errors.Add("FirstName is required");
                    }
                    if (string.IsNullOrEmpty(u.Email))
                    {
                        u.Properties[nameof(u.Email)].Errors.Add("Email is required");
                    }
                    else if (!new System.ComponentModel.DataAnnotations.EmailAddressAttribute().IsValid(u.Email))
                    {
                        u.Properties[nameof(u.Email)].Errors.Add("Must consist . and @");
                    }
                }
            };

            TempPerson = temp;
            TempPerson.Validate();


            if (parameter == null)
            {
                CurrentState = States.Add;
                Title        = "Adding new person";
            }
            else
            {
                CurrentState = States.Edit;
                Title        = $"Editing {TempPerson.FullName}";
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 27
0
        public static void Main()
        {
            //Builder
            var builder = new CodeBuilder("Person").AddField("string", "Name").AddField("int", "Age");

            Console.WriteLine(builder.ToString());

            //Factory
            var factory = new F.Factory();
            var person  = factory.CreateInstance("Alexander");

            // Numbers of models should be as pointers to the Factories if we want to have different models instatiated from one Factory
            Console.WriteLine(person);

            //Prototype
            Point one = new Point {
                X = 1, Y = 2
            };
            Point two = new Point {
                X = 3, Y = 4
            };
            Line line = new Line {
                Start = one, End = two
            };
            Line copiedLine = line.DeepCopyJson();

            copiedLine.Start.X = 57;

            Console.WriteLine(line);
            Console.WriteLine(copiedLine);

            //Flyweight
            var sentence = new Sentence("Hasta la vista");

            sentence[0].IsCapitalized = true;
            Console.WriteLine(sentence);

            //Proxy
            var person1 = new PersonProxy(new Person {
                Age = 21
            });

            Console.WriteLine(person1.Drive());
            person1.Age = 14;
            Console.WriteLine(person1.Drink());

            //Bridge
            var circle = new Circle();
            var square = new Square();

            Console.WriteLine(circle.ToString());
            Console.WriteLine(square.ToString());

            //Composite
            var manyValues = new ManyValues
            {
                new SingleValue {
                    Value = 5
                },
                new SingleValue {
                    Value = 3
                },
                new SingleValue {
                    Value = 2
                }
            };
            var some = manyValues.Sum();

            //ChainOfResponsibility
            var game       = new Game();
            var goblin     = new Goblin(game);
            var goblinKing = new GoblinKing(game);

            //Mediator
            Use.Mediator mediator = new Use.Mediator();
            var          p1       = new Participant(mediator);
            var          p2       = new Participant(mediator);

            p1.Say(2);
            p2.Say(4);

            //Memento
            var ba = new BankAccount(100);
            var m1 = ba.Deposit(50); // 150
            var m2 = ba.Deposit(25); // 175

            Console.WriteLine(ba);
            // restore to m1
            ba.Restore(m1);
            Console.WriteLine(ba);
            ba.Restore(m2);
            Console.WriteLine(ba);
        }