コード例 #1
0
        public void UpdateDbWorkRequest(DataContext dbContext, DbWorkRequest dbWorkRequest, WorkRequest workRequest)
        {
            // Delete users in dbWorkRequest that are not in workRequest
            var dbUsersWorkRequestsToRemove = dbWorkRequest.DbUserWorkRequests.Where(dbRequest => !workRequest.UsersAssigned.Select(u => u.UserId).Contains(dbRequest.DbUser.DbUserId)).ToList();

            foreach (var dbUsersWorkRequestToRemove in dbUsersWorkRequestsToRemove)
            {
                dbWorkRequest.DbUserWorkRequests.Remove(dbUsersWorkRequestToRemove);
            }

            // Add users in workRequest that are not in dbWorkRequest
            var usersToAdd = workRequest.UsersAssigned.Where(request => !dbWorkRequest.DbUserWorkRequests.Select(u => u.DbUser.DbUserId).Contains(request.UserId)).ToList();

            foreach (var userToAdd in usersToAdd)
            {
                var dbUser = new UsersRepository().GetDbUser(dbContext, userToAdd.UserId);
                if (dbUser != null)
                {
                    dbWorkRequest.DbUserWorkRequests.Add(new DbUserWorkRequest {
                        DbUserWorkRequestId = Guid.NewGuid(), DbUser = dbUser, DbWorkRequest = dbWorkRequest
                    });
                }
            }

            dbContext.SaveChanges();
        }
コード例 #2
0
        public WorkRequest AddWorkRequest(WorkRequest workRequest)
        {
            var dbContext     = new DataContext();
            var dbWorkRequest = new DbWorkRequest();

            dbWorkRequest.DbWorkRequestId = workRequest.WorkRequestId;
            dbWorkRequest.RequestDate     = workRequest.RequestDate;
            dbWorkRequest.RequestNumber   = new WorkRequestNumbersRepository().GetNextNumber();
            dbWorkRequest.Description     = workRequest.Description;
            dbWorkRequest.DbCreatedByUser = new UsersRepository().GetDbUser(dbContext, workRequest.CreatedByUser.UserId);
            dbWorkRequest.DbSoftwareType  = new SoftwareTypesRepository().GetDbSoftwareType(dbContext, workRequest.SoftwareType.SoftwareTypeId);
            dbWorkRequest.DbWorkStatus    = new WorkStatusRepository().GetDbWorkStatus(dbContext, workRequest.WorkStatus.WorkStatusId);
            dbWorkRequest.DbWorkType      = new WorkTypesRepository().GetDbWorkType(dbContext, workRequest.WorkType.WorkTypeId);
            dbWorkRequest.DbCustomer      = new CustomersRepository().GetDbCustomer(dbContext, workRequest.Customer.CustomerId);

            dbWorkRequest = dbContext.DbWorkRequests.Add(dbWorkRequest);
            dbContext.SaveChanges();

            dbContext     = new DataContext();
            dbWorkRequest = GetDbWorkRequest(dbContext, dbWorkRequest.DbWorkRequestId);

            new UserWorkRequestsRepository().UpdateDbWorkRequest(dbContext, dbWorkRequest, workRequest);

            return(new WorkRequest(dbWorkRequest));
        }
コード例 #3
0
 public WorkRequest(DbWorkRequest dbWorkRequest)
 {
     WorkRequestId = dbWorkRequest.DbWorkRequestId;
     RequestNumber = dbWorkRequest.RequestNumber;
     RequestDate   = dbWorkRequest.RequestDate;
     Description   = dbWorkRequest.Description;
     WorkType      = new WorkType(dbWorkRequest.DbWorkType);
     WorkStatus    = new WorkStatus(dbWorkRequest.DbWorkStatus);
     SoftwareType  = new SoftwareType(dbWorkRequest.DbSoftwareType);
     RequestNumber = dbWorkRequest.RequestNumber;
     CreatedByUser = new User(dbWorkRequest.DbCreatedByUser);
     UsersAssigned = dbWorkRequest.DbUserWorkRequests.Select(dbUserWorkRequest => dbUserWorkRequest.DbUser).ToList().Select(dbUser => new User(dbUser)).ToList();
     Customer      = new Customer(dbWorkRequest.DbCustomer);
 }