コード例 #1
0
        public void UpdateAttendance(Objects.Attendance attendance)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Attendance> repository = new Repositor <Attendance>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(attendance);
                unitOfWork.BeginTransaction();
                var a = repository.Single(c => c.AttendanceDateID == attendance.DateID && c.AttendanceWorkerID == attendance.WorkerID);
                if (a.Date.DateIsClosed)
                {
                    throw new DateException("Směna je uzamčená, nelze odebírat ani editovat záznamy");
                }
                a.AttendanceWorkerStateID = attendance.WorkerStateID;
                a.AttendanceWorkerTourID  = attendance.WorkerTourID;
                a.AttendanceDescription   = String.IsNullOrWhiteSpace(attendance.Description) ? null : attendance.Description;
                repository.Update(a);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #2
0
        public Int64 AddDate(Objects.Date date)
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Date> repository = new Repositor <Date>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(date);
                Date d = new Date();
                d.DateDate         = date.DateContent;
                d.DateIsNight      = date.IsNight;
                d.DateIsClosed     = false;
                d.DateDetachmentID = date.DetachmentID;
                d.DateDescription  = String.IsNullOrWhiteSpace(date.Description) ? null : date.Description;
                unitOfWork.BeginTransaction();
                var de = repository.Find(c => c.DateDate.Date >= date.DateContent.Date && c.DateDetachmentID == date.DetachmentID).ToList();
                if (de != null)
                {
                    if (de.Any(c => c.DateDate.Date > date.DateContent.Date) || de.Any(c => c.DateDate.Date == date.DateContent.Date && c.DateIsNight == true))
                    {
                        throw new FormatException("Není možné vytvářet směnu zpětně!");
                    }
                }
                repository.Add(d);
                unitOfWork.CommitTransaction();
                return(d.DateID);
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #3
0
        public Int32 AddChangeover(Objects.Changeover changeover)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Changeover> repository = new Repositor <Changeover>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(changeover);
                Changeover ch = new Changeover();
                ch.ChangeoverDateID       = changeover.DateID;
                ch.ChangeoverVehicleID    = changeover.VehicleID;
                ch.ChangeoverWorkTypeID   = changeover.WorkTypeID;
                ch.ChangeoverDescription  = String.IsNullOrWhiteSpace(changeover.Description) ? null : changeover.Description;
                ch.ChangeoverDetachmentID = changeover.DetachmentID;
                unitOfWork.BeginTransaction();
                repository.Add(ch);
                unitOfWork.CommitTransaction();
                return(ch.ChangeoverID);
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #4
0
        public void UpdateWork(Objects.Work work)
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Work> repository = new Repositor <Work>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(work);
                unitOfWork.BeginTransaction();
                var w = repository.Single(c => c.WorkID == work.ID);
                if (w.Date.DateIsClosed)
                {
                    throw new DateException("Směna je uzamčená, nelze odebírat ani editovat záznamy");
                }
                w.WorkVehicleID        = work.VehicleID;
                w.WorkWorkTypeID       = work.WorkTypeID;
                w.WorkFaultDescription = String.IsNullOrWhiteSpace(work.FaultDescription) ? null : work.FaultDescription;
                w.WorkCauseDescription = String.IsNullOrWhiteSpace(work.CauseDescription) ? null : work.CauseDescription;
                repository.Update(w);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #5
0
        public Int64 AddWork(Objects.Work work)
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Work> repository = new Repositor <Work>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(work);
                Work w = new Work();
                w.WorkDateID           = work.DateID;
                w.WorkVehicleID        = work.VehicleID;
                w.WorkWorkTypeID       = work.WorkTypeID;
                w.WorkFaultDescription = String.IsNullOrWhiteSpace(work.FaultDescription) ? null : work.FaultDescription;
                w.WorkCauseDescription = String.IsNullOrWhiteSpace(work.CauseDescription) ? null : work.CauseDescription;
                unitOfWork.BeginTransaction();
                repository.Add(w);
                unitOfWork.CommitTransaction();
                return(w.WorkID);
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #6
0
        public Objects.WorkerDetail FindWorker(Int32 workerID)
        {
            IUnitOfWork          unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Worker> repository = new Repositor <Worker>(unitOfWork);

            try
            {
                var w = repository.Single(c => c.WorkerID == workerID);
                Objects.WorkerDetail worker = new Objects.WorkerDetail();
                worker.ID            = w.WorkerID;
                worker.FirstName     = w.WorkerFirstName;
                worker.LastName      = w.WorkerLastName;
                worker.ServiceNumber = w.WorkerServiceNumber;
                worker.SapNumber     = w.WorkerSapNumber;
                worker.ServiceEmail  = w.WorkerServiceEmail;
                worker.PersonalEmail = w.WorkerPersonalEmail;
                worker.ServicePhone  = w.WorkerServicePhone;
                worker.PersonalPhone = w.WorkerPersonalPhone;
                worker.Description   = w.WorkerDescription;
                worker.Photo         = w.WorkerPhoto;
                worker.DetachmentID  = w.WorkerDetachmentID;
                worker.Tours         = w.Tours.Select(c => new Objects.Tour()
                {
                    ID          = c.TourID,
                    Description = c.TourDescription,
                    EndTime     = c.TourEndTime,
                    StartTime   = c.TourStartTime
                });
                return(worker);
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #7
0
        public Objects.User GetUserInfo(string userName)
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <User> repository = new Repositor <User>(unitOfWork);

            try
            {
                var u    = repository.Single(c => c.UserName == userName);
                var user = new Objects.User();
                user.ID           = u.UserID;
                user.Name         = u.UserName;
                user.WorkerID     = u.UserWorkerID;
                user.Description  = u.UserDescription;
                user.DetachmentID = u.UserDetachmentID;
                user.Roles        = u.Roles.Select(c => new Objects.Role()
                {
                    ID   = c.RoleID,
                    Name = c.RoleName
                });
                return(user);
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #8
0
        public List <Objects.User> GetUsers()
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <User> repository = new Repositor <User>(unitOfWork);

            try
            {
                return(repository.GetAll().Select(c => new Objects.User()
                {
                    ID = c.UserID,
                    Name = c.UserName,
                    WorkerID = c.UserWorkerID,
                    Description = c.UserDescription,
                    DetachmentID = c.UserDetachmentID,
                    Roles = c.Roles.Select(r => new Objects.Role()
                    {
                        ID = r.RoleID,
                        Name = r.RoleName
                    })
                }).ToList());
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #9
0
        public List <Objects.Changeover> FindChangeovers(Int32 detachmentID)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Changeover> repository = new Repositor <Changeover>(unitOfWork);

            try
            {
                return(repository.Find(c => c.ChangeoverDetachmentID == detachmentID).Select(c => new Objects.Changeover()
                {
                    ID = c.ChangeoverID,
                    DateID = c.ChangeoverDateID,
                    DateContent = c.Date.DateDate,
                    IsNight = c.Date.DateIsNight,
                    VehicleID = c.ChangeoverVehicleID,
                    VehicleNumber = c.Vehicle.VehicleNumber,
                    WorkTypeID = c.ChangeoverWorkTypeID,
                    WorkTypeName = c.WorkType.WorkTypeName,
                    Description = c.ChangeoverDescription,
                    DetachmentID = c.ChangeoverDetachmentID
                }).ToList());
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #10
0
        public List <Objects.Attendance> FindAttendances(Int64 dateID)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Attendance> repository = new Repositor <Attendance>(unitOfWork);

            try
            {
                return(repository.Find(k => k.AttendanceDateID == dateID).Select(c => new Objects.Attendance()
                {
                    DateID = c.AttendanceDateID,
                    WorkerID = c.AttendanceWorkerID,
                    FirstName = c.Worker.WorkerFirstName,
                    LastName = c.Worker.WorkerLastName,
                    SapNumber = c.Worker.WorkerSapNumber,
                    WorkerStateID = c.AttendanceWorkerStateID,
                    WorkerState = c.WorkerState.WorkerStateName,
                    WorkerTourID = c.AttendanceWorkerTourID,
                    WorkerTour = c.Tour.TourStartTime.ToString("hh\\:mm") + " - " + c.Tour.TourEndTime.ToString("hh\\:mm"),
                    Description = c.AttendanceDescription
                }).ToList());
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #11
0
        protected virtual void EnsureRoles()
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <User> repository = new Repositor <User>(unitOfWork);

            try
            {
                roles = repository.Single(c => c.UserName == identities[0].Name).Roles.Select(c => c.RoleName).ToArray();
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #12
0
        public List <string> GetTopCauseWorks(Int32 count, Int32 detachmentID)
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Work> repository = new Repositor <Work>(unitOfWork);

            try
            {
                return(repository.Find(c => c.Date.DateDetachmentID == detachmentID).
                       GroupBy(c => c.WorkCauseDescription).OrderByDescending(
                           c => c.Count()).Select(c => c.Key).Take(count).ToList());
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #13
0
        public void DeleteChangeover(Int32 changeoverID)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Changeover> repository = new Repositor <Changeover>(unitOfWork);

            try
            {
                unitOfWork.BeginTransaction();
                var ch = repository.Single(c => c.ChangeoverID == changeoverID);
                repository.Delete(ch);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #14
0
        public void DeleteVehicle(Int32 vehicleID)
        {
            IUnitOfWork           unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Vehicle> repository = new Repositor <Vehicle>(unitOfWork);

            try
            {
                unitOfWork.BeginTransaction();
                var v = repository.Single(c => c.VehicleID == vehicleID);
                repository.Delete(v);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #15
0
        public void DeleteWorker(int workerID)
        {
            IUnitOfWork          unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Worker> repository = new Repositor <Worker>(unitOfWork);

            try
            {
                unitOfWork.BeginTransaction();
                var w = repository.Single(c => c.WorkerID == workerID);
                repository.Delete(w);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #16
0
        public List <Objects.Role> GetRoles()
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Role> repository = new Repositor <Role>(unitOfWork);

            try
            {
                return(repository.GetAll().Select(c => new Objects.Role()
                {
                    ID = c.RoleID,
                    Name = c.RoleName
                }).ToList());
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #17
0
        public void DeleteDetachment(Int32 detachmentID)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Detachment> repository = new Repositor <Detachment>(unitOfWork);

            try
            {
                unitOfWork.BeginTransaction();
                var d = repository.Single(c => c.DetachmentID == detachmentID);
                repository.Delete(d);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #18
0
        public List <Objects.Detachment> GetDetachments()
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Detachment> repository = new Repositor <Detachment>(unitOfWork);

            try
            {
                return(repository.GetAll().Select(c => new Objects.Detachment()
                {
                    ID = c.DetachmentID,
                    Name = c.DetachmentName,
                    Description = c.DetachmentDescription
                }).ToList());
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #19
0
        public Objects.Detachment FindDetachment(Int32 detachmentID)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Detachment> repository = new Repositor <Detachment>(unitOfWork);

            try
            {
                var d = repository.Single(c => c.DetachmentID == detachmentID);
                Objects.Detachment detachment = new Objects.Detachment();
                detachment.ID          = d.DetachmentID;
                detachment.Name        = d.DetachmentName;
                detachment.Description = d.DetachmentDescription;
                return(detachment);
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #20
0
        public void UpdateWorkType(Objects.WorkType workType)
        {
            IUnitOfWork            unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <WorkType> repository = new Repositor <WorkType>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(workType);
                unitOfWork.BeginTransaction();
                var wt = repository.Single(c => c.WorkTypeID == workType.ID);
                wt.WorkTypeDescription = String.IsNullOrWhiteSpace(workType.Description) ? null : workType.Description;
                repository.Update(wt);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #21
0
        public List <Objects.Vehicle> FindVehicles(Int32 detachmentID)
        {
            IUnitOfWork           unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Vehicle> repository = new Repositor <Vehicle>(unitOfWork);

            try
            {
                return(repository.Find(c => c.VehicleDetachmentID == detachmentID).Select(c => new Objects.Vehicle()
                {
                    ID = c.VehicleID,
                    Number = c.VehicleNumber,
                    DetachmentID = c.VehicleDetachmentID,
                    Description = c.VehicleDescription
                }).ToList());
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #22
0
        public void UpdateChangeover(Objects.Changeover changeover)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Changeover> repository = new Repositor <Changeover>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(changeover);
                unitOfWork.BeginTransaction();
                var ch = repository.Single(c => c.ChangeoverID == changeover.ID);
                ch.ChangeoverDescription = String.IsNullOrWhiteSpace(changeover.Description) ? null : changeover.Description;
                repository.Update(ch);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #23
0
        public void UpdateTour(Objects.Tour tour)
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Tour> repository = new Repositor <Tour>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(tour);
                unitOfWork.BeginTransaction();
                var t = repository.Single(c => c.TourID == tour.ID);
                t.TourDescription = String.IsNullOrWhiteSpace(tour.Description) ? null : tour.Description;
                repository.Update(t);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #24
0
        public void UpdateDetachment(Objects.Detachment detachment)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Detachment> repository = new Repositor <Detachment>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(detachment);
                unitOfWork.BeginTransaction();
                var d = repository.Single(c => c.DetachmentID == detachment.ID);
                d.DetachmentDescription = String.IsNullOrWhiteSpace(detachment.Description) ? null : detachment.Description;
                repository.Update(d);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #25
0
        public void UpdateVehicle(Objects.Vehicle vehicle)
        {
            IUnitOfWork           unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Vehicle> repository = new Repositor <Vehicle>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(vehicle);
                unitOfWork.BeginTransaction();
                var v = repository.Single(c => c.VehicleID == vehicle.ID);
                v.VehicleDescription = String.IsNullOrWhiteSpace(vehicle.Description) ? null : vehicle.Description;
                repository.Update(v);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #26
0
        public bool ChangePassword(Objects.User user)
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <User> repository = new Repositor <User>(unitOfWork);

            try
            {
                unitOfWork.BeginTransaction();
                var u = repository.Single(c => c.UserID == user.ID);
                u.UserPassword = String.IsNullOrWhiteSpace(user.Password) ? null : user.Password;
                repository.Update(u);
                unitOfWork.CommitTransaction();
                return(true);
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #27
0
        public Objects.Work TransferChangeover(Int64 dateID, Int32 changeoverID)
        {
            IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Changeover> repository     = new Repositor <Changeover>(unitOfWork);
            IRepository <Work>       workRepository = new Repositor <Work>(unitOfWork);

            try
            {
                unitOfWork.BeginTransaction();
                var  ch = repository.Single(c => c.ChangeoverID == changeoverID);
                Work w  = new Work();
                w.WorkDateID           = dateID;
                w.WorkVehicleID        = ch.ChangeoverVehicleID;
                w.WorkWorkTypeID       = ch.ChangeoverWorkTypeID;
                w.WorkFaultDescription = String.IsNullOrWhiteSpace(ch.ChangeoverDescription) ? null : ch.ChangeoverDescription;
                workRepository.Add(w);
                repository.Delete(ch);
                unitOfWork.CommitTransaction();
                w = workRepository.UoW.Orm.Set <Work>().
                    Include("Vehicle").
                    Include("Date").
                    Include("WorkType").Single(c => c.WorkID == w.WorkID);
                return(new Objects.Work()
                {
                    DateContent = w.Date.DateDate,
                    DateID = w.WorkDateID,
                    FaultDescription = w.WorkFaultDescription,
                    ID = w.WorkID,
                    IsNight = w.Date.DateIsNight,
                    VehicleID = w.WorkVehicleID,
                    VehicleNumber = w.Vehicle.VehicleNumber,
                    WorkTypeID = w.WorkWorkTypeID,
                    WorkTypeName = w.WorkType.WorkTypeName
                });
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #28
0
        public List <Objects.Tour> FindTours(Int32 detachmentID)
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <Tour> repository = new Repositor <Tour>(unitOfWork);

            try
            {
                return(repository.Find(c => c.TourDetachmentID == detachmentID).Select(c => new Objects.Tour()
                {
                    ID = c.TourID,
                    EndTime = c.TourEndTime,
                    StartTime = c.TourStartTime,
                    DetachmentID = c.TourDetachmentID,
                    Description = c.TourDescription
                }).ToList());
            }
            catch (Exception e)
            {
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #29
0
        public string ResetPassword(Int32 userID)
        {
            IUnitOfWork        unitOfWork = SessionFactory.GetUnitOfWork;
            IRepository <User> repository = new Repositor <User>(unitOfWork);

            try
            {
                unitOfWork.BeginTransaction();
                var u = repository.Single(c => c.UserID == userID);
                PasswordGenerator generator = new PasswordGenerator(10, u.UserName);
                u.UserPassword = generator.Hash;
                repository.Update(u);
                unitOfWork.CommitTransaction();
                return(generator.Password);
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }
コード例 #30
0
        public void UpdateWorker(Objects.WorkerDetail worker)
        {
            IUnitOfWork          unitOfWork     = SessionFactory.GetUnitOfWork;
            IRepository <Worker> repository     = new Repositor <Worker>(unitOfWork);
            IRepository <Tour>   repositoryTour = new Repositor <Tour>(unitOfWork);

            try
            {
                ObjectValidator.IsValid(worker);
                unitOfWork.BeginTransaction();
                var w = repository.Single(c => c.WorkerID == worker.ID);
                w.WorkerServiceEmail  = String.IsNullOrWhiteSpace(worker.ServiceEmail) ? null : worker.ServiceEmail;
                w.WorkerPersonalEmail = String.IsNullOrWhiteSpace(worker.PersonalEmail) ? null : worker.PersonalEmail;
                w.WorkerServicePhone  = String.IsNullOrWhiteSpace(worker.ServicePhone) ? null : worker.ServicePhone;
                w.WorkerPersonalPhone = String.IsNullOrWhiteSpace(worker.PersonalPhone) ? null : worker.PersonalPhone;
                w.WorkerDescription   = String.IsNullOrWhiteSpace(worker.Description) ? null : worker.Description;
                w.WorkerPhoto         = worker.Photo;
                var oldIds      = w.Tours.Select(c => c.TourID);
                var addTours    = worker.Tours.Where(c => !oldIds.Contains(c.ID)).ToList();
                var newIds      = worker.Tours.Select(c => c.ID);
                var removeTours = w.Tours.Where(c => !newIds.Contains(c.TourID)).ToList();
                foreach (var item in removeTours)
                {
                    var a = repositoryTour.Single(c => c.TourID == item.TourID);
                    w.Tours.Remove(a);
                }
                foreach (var item in addTours)
                {
                    var a = repositoryTour.Single(c => c.TourID == item.ID);
                    w.Tours.Add(a);
                }
                repository.Update(w);
                unitOfWork.CommitTransaction();
            }
            catch (Exception e)
            {
                unitOfWork.RollbackTransaction();
                throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e));
            }
        }