public void Handle()
        {
            try
            {
                DataModel.Meeting meeting = _uow.MeetingRepository.Get(_query.MandatorUIDs, _query.MeetingUID);

                if (meeting == null)
                {
                    throw new DataException("No Entity found to UID : " + _query.MeetingUID);
                }

                if (!_query.MandatorUIDs.Intersect(meeting.MandatorUIDs).Any())
                {
                    throw new UnauthorizedAccessException("Meeting from another mandator");
                }

                _uow.MeetingRepository.Delete(_query.MandatorUIDs, _query.MeetingUID);
                _uow.Commit();
            }
            catch (UnauthorizedAccessException)
            {
                throw new UnauthorizedAccessException("Not Authorized to Delete the Entity");
            }
            catch (DataException e)
            {
                throw new DataException("Internal Server Error during Saving Changes", e);
            }
            catch (Exception)
            {
                throw new Exception("Internal Server Error during Saving Changes");
            }
        }
        public void Handle()
        {
            OrgManUnitOfWork uow = new OrgManUnitOfWork();

            uow.SessionRepository.Delete(_query.MandatorUIDs, _query.SessionUID);

            uow.Commit();
        }
        public void Handle()
        {
            OrgManUnitOfWork uow = new OrgManUnitOfWork();

            try
            {
                var membership = uow.MembershipRepository.Get(_query.MandatorUIDs, _query.MembershipUID);

                if (membership == null)
                {
                    throw new DataException("No Entity found to UID : " + _query.MembershipUID);
                }

                if (_query.MandatorUIDs.Intersect(membership.MandatorUIDs).Any())
                {
                    if (membership.MemberInformationToMemberships != null &&
                        membership.MemberInformationToMemberships.Any())
                    {
                        throw new DataException(
                                  string.Format(
                                      "Could not remove Membership, because it is beeing used by {0} MemberInformationToMemberships",
                                      membership.MemberInformationToMemberships.Count));
                    }

                    uow.MembershipRepository.Delete(_query.MandatorUIDs, _query.MembershipUID);
                }
                else
                {
                    throw new UnauthorizedAccessException("Membership from another Mandator");
                }
            }
            catch (DataException e)
            {
                throw new DataException("Internal Server Error during deleting Membership", e);
            }
            catch (UnauthorizedAccessException e)
            {
                throw new DataException("Internal Server Error during deleting Membership", e);
            }
            catch (Exception)
            {
                throw new Exception("Internal Server Error during deleting Membership");
            }

            try
            {
                uow.Commit();
            }
            catch (DataException e)
            {
                throw new Exception("Internal Server Error during Saving changes", e);
            }
            catch (Exception)
            {
                throw new Exception("Internal Server Error during Saving changes");
            }
        }
        public void Handle()
        {
            DataModel.Session session = AutoMapper.Mapper.Map <DataModel.Session>(_query.Session);
            session.SysUpdateTime       = DateTimeOffset.Now;
            session.SysUpdateAccountUID = Guid.NewGuid();

            OrgManUnitOfWork uow = new OrgManUnitOfWork();

            uow.SessionRepository.Update(_query.MandatorUIDs, session);

            uow.Commit();
        }
        public Guid Handle()
        {
            DataModel.Session session = Mapper.Map <DataModel.Session>(_query.Session);

            session.UID                 = Guid.NewGuid();
            session.SysInsertTime       = DateTimeOffset.Now;
            session.SysInsertAccountUID = Guid.NewGuid();

            OrgManUnitOfWork uow = new OrgManUnitOfWork();

            uow.SessionRepository.Insert(session);
            uow.Commit();
            return(session.UID);
        }
        public Guid Handle()
        {
            try
            {
                DataModel.Meeting meeting = AutoMapper.Mapper.Map <DataModel.Meeting>(_query.MeetingDetailDomainModel);

                if (meeting == null)
                {
                    throw new DataException("Could not Map MeetingDetailDomainModel to Meeting");
                }

                //DynamicValidationService<DataModel.Meeting> validationService = new DynamicValidationService<DataModel.Meeting>(new UnityContainer());

                //if (!validationService.Validate(meeting))
                //{
                //    throw new DataException("Entity is Invalid");
                //}

                if (_query.MandatorUIDs.Intersect(meeting.MandatorUIDs).Any())
                {
                    Guid meetingUid = Guid.NewGuid();
                    meeting.UID = meetingUid;

                    _uow.MeetingRepository.Insert(_query.MandatorUIDs, meeting);
                    _uow.Commit();

                    return(meeting.UID);
                }

                throw new UnauthorizedAccessException("Meeting from another mandator");
            }
            catch (UnauthorizedAccessException)
            {
                throw new UnauthorizedAccessException("Not Authorized to Create the Entity");
            }
            catch (InvalidOperationException)
            {
                throw new InvalidOperationException("Internal Server Error thrown during create process");
            }
            catch (DataException e)
            {
                throw new DataException("Internal Server Error", e);
            }
            catch (Exception e)
            {
                throw new Exception("Internal Server Error", e);
            }
        }
Esempio n. 7
0
        public Guid Handle()
        {
            OrgManUnitOfWork uow = new OrgManUnitOfWork();

            try
            {
                var membership = AutoMapper.Mapper.Map <DataModel.Membership>(_query.MembershipDomainModel);

                if (membership == null)
                {
                    throw new DataException("Could not Map AdressManagementDetailDomainModel to IndividualPerson");
                }

                if (_query.MandatorUIDs.Intersect(membership.MandatorUIDs).Any())
                {
                    membership.UID = Guid.NewGuid();

                    uow.MembershipRepository.Insert(_query.MandatorUIDs, membership);

                    uow.Commit();

                    return(membership.UID);
                }
                else
                {
                    throw new UnauthorizedAccessException("Membership from another Mandator");
                }
            }
            catch (DataException e)
            {
                throw new DataException("Internal Server Error during Inserting changes", e);
            }
            catch (UnauthorizedAccessException e)
            {
                throw new UnauthorizedAccessException("Internal Server Error during Inserting changes", e);
            }
            catch (Exception)
            {
                throw new Exception("Internal Server Error during Inserting changes");
            }
        }
Esempio n. 8
0
        public MeetingDetailDomainModel Handle()
        {
            try
            {
                OrgManUnitOfWork uow = new OrgManUnitOfWork();

                var meeting = Mapper.Map <DataModel.Meeting>(_query.MeetingDetailDomainModel);

                if (_query.MandatorUIDs.Intersect(meeting.MandatorUIDs).Any())
                {
                    uow.MeetingRepository.Update(_query.MandatorUIDs, meeting);

                    uow.Commit();

                    return(Mapper.Map <MeetingDetailDomainModel>(meeting));
                }

                throw new UnauthorizedAccessException("Meeting from another mandator");
            }
            catch (UnauthorizedAccessException)
            {
                throw new UnauthorizedAccessException("Not Authorized to Update the Entity");
            }
            catch (InvalidOperationException)
            {
                throw new InvalidOperationException("Internal Server Error thrown during update process");
            }
            catch (DataException e)
            {
                throw new DataException("Internal Server Error", e);
            }
            catch (Exception)
            {
                throw new Exception("Internal Server Error");
            }
        }
Esempio n. 9
0
        public Guid Handle()
        {
            try
            {
                IndividualPerson individualPerson = Mapper.Map <IndividualPerson>(_query.AdressManagementDetailDomainModel);

                if (individualPerson == null)
                {
                    throw new DataException("Could not Map AdressManagementDetailDomainModel to IndividualPerson");
                }

                Guid individualPersonUid  = Guid.NewGuid();
                Guid adressUid            = Guid.NewGuid();
                Guid memberinformationUid = Guid.NewGuid();

                individualPerson.UID = individualPersonUid;

                individualPerson.Person.UID = individualPersonUid;
                individualPerson.AdressUID  = adressUid;

                if (individualPerson.MemberInformation != null)
                {
                    individualPerson.MemberInformation.UID = memberinformationUid;

                    if (individualPerson.MemberInformation.MemberInformationToMemberships != null)
                    {
                        foreach (var memberInformationToMembership in individualPerson.MemberInformation.MemberInformationToMemberships)
                        {
                            memberInformationToMembership.MemberInformationUID = memberinformationUid;
                            memberInformationToMembership.UID = Guid.NewGuid();
                        }
                    }
                }

                if (individualPerson.Adress != null)
                {
                    individualPerson.Adress.UID = adressUid;
                }

                foreach (var phone in individualPerson.Phones)
                {
                    phone.IndividualPersonUID = individualPersonUid;
                    phone.UID = Guid.NewGuid();
                }

                foreach (var email in individualPerson.Emails)
                {
                    email.IndividualPersonUID = individualPersonUid;
                    email.UID = Guid.NewGuid();
                }

                foreach (var personToMandator in individualPerson.Person.PersonToMandators)
                {
                    personToMandator.PersonUID = individualPersonUid;
                    personToMandator.UID       = Guid.NewGuid();
                }

                _uow.IndividualPersonRepository.Insert(_query.MandatorUIDs, individualPerson);

                _uow.Commit();

                return(individualPerson.UID);
            }
            catch (DataException e)
            {
                throw new Exception("Internal Server Error", e);
            }
            catch (Exception)
            {
                throw new Exception("Internal Server Error");
            }
        }
        public void Handle()
        {
            try
            {
                IndividualPerson individualPerson = _uow.IndividualPersonRepository.Get(_query.MandatorUIDs, _query.IndividualPersonUID);

                if (individualPerson == null)
                {
                    throw new DataException("No Entity found to UID : " + _query.IndividualPersonUID);
                }

                if (individualPerson.Phones != null && individualPerson.Phones.Any())
                {
                    DeletePhones(_query.MandatorUIDs, individualPerson.Phones.Select(p => p.UID).ToList());
                }

                if (individualPerson.Emails != null && individualPerson.Emails.Any())
                {
                    DeleteEmails(_query.MandatorUIDs, individualPerson.Emails.Select(p => p.UID).ToList());
                }

                List <Guid> personToMandatorsToDeleteUids = individualPerson.Person.PersonToMandators.Select(p => p.UID).ToList();

                if (individualPerson.Person.Login != null)
                {
                    if (individualPerson.Person.Login.Sessions != null && individualPerson.Person.Login.Sessions.Any())
                    {
                        throw new DataException("Could not Delete, because there are active Sessions existing");
                        //DeleteSessions(individualPerson.Person.Login.Sessions.Select(s => s.UID).ToList());
                    }

                    _uow.LoginRepository.Delete(_query.MandatorUIDs, individualPerson.Person.Login.UID);
                }

                _uow.IndividualPersonRepository.Delete(_query.MandatorUIDs, _query.IndividualPersonUID);

                if (individualPerson.Person != null && individualPerson.Person.IndividualPerson != null && individualPerson.Person.SystemPerson == null)
                {
                    _uow.PersonRepository.Delete(_query.MandatorUIDs, individualPerson.Person.UID);
                }

                if (personToMandatorsToDeleteUids != null && personToMandatorsToDeleteUids.Any())
                {
                    DeletePersonToMandators(personToMandatorsToDeleteUids);
                }
                else
                {
                    throw new DataException("No MandatorUDIs found for Entity with the UID : " + _query.IndividualPersonUID);
                }

                if (individualPerson.MemberInformationUID != null)
                {
                    if (individualPerson.MemberInformation.MemberInformationToMemberships != null && individualPerson.MemberInformation.MemberInformationToMemberships.Any())
                    {
                        DeleteMemberInformationToMemberships(individualPerson.MemberInformation.MemberInformationToMemberships.Select(m => m.UID).ToList());
                    }

                    DeleteMemberInformation(_query.MandatorUIDs, individualPerson.MemberInformationUID.Value);
                }

                DeleteAdress(individualPerson.AdressUID);
            }
            catch (DataException e)
            {
                throw new Exception("Internal Server Error", e);
            }
            catch (Exception e)
            {
                throw new Exception("Internal Server Error");
            }

            try
            {
                _uow.Commit();
            }
            catch (DataException e)
            {
                throw new Exception("Internal Server Error during Saving changes", e);
            }
            catch (Exception)
            {
                throw new Exception("Internal Server Error during Saving changes");
            }
        }
        public AdressManagementDetailDomainModel Handle()
        {
            try
            {
                OrgManUnitOfWork uow = new OrgManUnitOfWork();

                Guid newMemberInformationUID = Guid.Empty;

                if (_query.AdressManagementDetailDomainModel.MemberInformation != null && _query.AdressManagementDetailDomainModel.MemberInformation.UID == null || _query.AdressManagementDetailDomainModel.MemberInformation.UID == Guid.Empty)
                {
                    newMemberInformationUID = Guid.NewGuid();
                    _query.AdressManagementDetailDomainModel.MemberInformation.UID = newMemberInformationUID;
                }

                if (_query.AdressManagementDetailDomainModel.MemberInformation != null && _query.AdressManagementDetailDomainModel.MemberInformation.MemberInformationToMemberships != null)
                {
                    foreach (var memberInformationToMembership in _query.AdressManagementDetailDomainModel.MemberInformation.MemberInformationToMemberships)
                    {
                        if (memberInformationToMembership.UID == null || memberInformationToMembership.UID == Guid.Empty)
                        {
                            Guid newUid = Guid.NewGuid();
                            memberInformationToMembership.UID = newUid;
                        }

                        if (memberInformationToMembership.Membership == null)
                        {
                            memberInformationToMembership.Membership = Mapper.Map <MembershipDomainModel>(uow.MembershipRepository.Get(_query.MandatorUIDs, memberInformationToMembership.MembershipUID));
                        }
                    }
                }

                if (_query.AdressManagementDetailDomainModel.Phones != null)
                {
                    foreach (var phone in _query.AdressManagementDetailDomainModel.Phones)
                    {
                        if (phone.UID == null || phone.UID == Guid.Empty)
                        {
                            phone.UID = Guid.NewGuid();
                            phone.IndividualPersonUID = _query.AdressManagementDetailDomainModel.UID;
                        }
                    }
                }

                if (_query.AdressManagementDetailDomainModel.Person.PersonToMandators != null)
                {
                    foreach (var personToMandator in _query.AdressManagementDetailDomainModel.Person.PersonToMandators)
                    {
                        personToMandator.PersonUID = _query.AdressManagementDetailDomainModel.Person.UID;
                        personToMandator.UID       = Guid.NewGuid();
                    }
                }

                if (_query.AdressManagementDetailDomainModel.Emails != null)
                {
                    foreach (var email in _query.AdressManagementDetailDomainModel.Emails)
                    {
                        if (email.UID == null || email.UID == Guid.Empty)
                        {
                            email.UID = Guid.NewGuid();
                            email.IndividualPersonUID = _query.AdressManagementDetailDomainModel.UID;
                        }
                    }
                }

                var individualPerson = Mapper.Map <DataModel.IndividualPerson>(_query.AdressManagementDetailDomainModel);

                uow.IndividualPersonRepository.Update(_query.MandatorUIDs, individualPerson);
                uow.MemberInformationRepository.Update(_query.MandatorUIDs, individualPerson.MemberInformation);
                uow.PersonRepository.Update(_query.MandatorUIDs, individualPerson.Person);
                uow.AdressRepository.Update(_query.MandatorUIDs, individualPerson.Adress);

                if (individualPerson.Phones != null)
                {
                    foreach (var phone in individualPerson.Phones)
                    {
                        uow.PhoneRepository.Update(_query.MandatorUIDs, phone);
                    }
                }

                if (individualPerson.Emails != null)
                {
                    foreach (var email in individualPerson.Emails)
                    {
                        uow.EmailRepository.Update(_query.MandatorUIDs, email);
                    }
                }

                uow.Commit();

                foreach (var membership in individualPerson.MemberInformation.MemberInformationToMemberships)
                {
                    var membershipTest = uow.MemberInformationToMembershipRepository.Get(membership.UID);

                    if (membershipTest == null)
                    {
                        uow.MemberInformationToMembershipRepository.Insert(membership);
                    }
                    else
                    {
                        uow.MemberInformationToMembershipRepository.Update(membership);
                    }
                }

                uow.Commit();

                return(Mapper.Map <AdressManagementDetailDomainModel>(uow.IndividualPersonRepository.Get(_query.AdressManagementDetailDomainModel.UID)));
            }
            catch (InvalidOperationException e)
            {
                throw new Exception("Internal Server Error thrown during update process", e);
            }
            catch (DataException e)
            {
                throw new Exception("Internal Server Error", e);
            }
            catch (Exception e)
            {
                throw new Exception("Internal Server Error", e);
            }
        }