//----------------------------------------------------------------// public async Task <ProcessResult> TryGenerateOrUpdateSequence(ISession session, String nameCase, String[] userNames) { String result = null; IEnumerable <UserCaseSequencer> sequencers = null; ICaseQuery caseQuery = QueryFactory.CreateQuery <ICaseQuery>(session); Case @case = await caseQuery.GetCaseByNameAsync(nameCase); if (@case != null) { IUserQuery userQuery = QueryFactory.CreateQuery <IUserQuery>(session); IEnumerable <ControlUser> users = await userQuery.GetItemsAsync(userNames); if (users.Count() == userNames.Length) { ICommand <UserCaseSequencer, UserCaseSequencerId> sequencerCommand = CommandFactory.CreateCommand <ICommand <UserCaseSequencer, UserCaseSequencerId> >(session); ICommand <Case, Int32> caseCommand = CommandFactory.CreateCommand <ICommand <Case, Int32> >(session); IQuery <UserCaseSequencer, UserCaseSequencerId> sequencerQuery = QueryFactory.CreateQuery <IQuery <UserCaseSequencer, UserCaseSequencerId> >(session); sequencers = users.Select((u, i) => new UserCaseSequencer(@case, u, i)); sequencers = await sequencerCommand.SaveOrUpdateCollectionAsync(sequencerQuery, sequencers); @case.NextUserId = sequencers.OrderBy(i => i.Sequence).First().Id.UserId; await caseCommand.UpdateAsync(@case); } else { result = UserMessages.UsersNotExist(GetNotExistUsers(users, userNames)); } } else { result = CaseMessages.CaseNotExist(nameCase); } return(String.IsNullOrEmpty(result) ? new ProcessResult(SequeceMessages.CaseSequenceGenerated(nameCase, sequencers), true) : new ProcessResult(result, false)); }