public UnitOfWork(IdentityDataContext db) { _db = db; User = new UserRepository(_db); InitiativeYear = new InitiativeYearRepository(_db); Initiative = new InitiativeRepository(_db); InitiativeMember = new InitiativeMemberRepository(_db); ActionItem = new ActionItemRepository(_db); ItemAssignee = new ItemAssigneeRepository(_db); ReviewCycle = new ReviewCycleRepository(_db); CommentItem = new CommentItemRepository(_db); EvaluationCriteria = new EvaluationCriteriaRepository(_db); InitiativeMeeting = new InitiativeMeetingRepository(_db); }
public InitiativeController() { this.repo = InitiativeRepository.GetInstance(); }
public static async Task <(bool, string, Message)> FindReferenceDataByQuestion(Message source, long serviceId, User user, UsersRepository users, MessageParams messageParams, DBPIParams dbPIParams) { // TODO must be 1 var startTime = DateTime.Now; var question = source.Body; var lastMessageID = users.GetLastMessageID(user.GUID); var(success, error, apsolutionsAnswer) = await SearchText(user.GUID, user.Fio, user.Position, user.EmploymentDate, serviceId, question).ConfigureAwait(false); if (users.IsOlderThenLast(user.GUID, lastMessageID)) { return(false, error, null); } // TODO if(service != null && apsolutionsAnswer.QuestionCategory == "information") if (!success || apsolutionsAnswer is null || apsolutionsAnswer.Records is null || apsolutionsAnswer.Records.Length == 0) { users.SetLastMessageID(user.GUID); return(false, null, Message.Answer(source, success ? messageParams.NotFound : messageParams.AIError, DateTime.Now.Ticks - startTime.Ticks)); } var userMessages = new Queue <Message>(); foreach (var record in apsolutionsAnswer.Records) { var body = record.Text; string description = null, title = null; ulong iid = 0; if (ulong.TryParse(body, out var pid)) { var initiativeRepository = new InitiativeRepository(new ConnectionService(dbPIParams)); var(notFound, _, info) = await initiativeRepository.GetAsync(pid).ConfigureAwait(false); if (notFound) { title = info.Problem.Length < 65 ? info.Problem : $"{info.Problem.Substring(0, 62)}..."; body = $"<div class=\"gpn-source\">Портал инициатив > {info.Iid}</div><div class=\"gpn-title\">{title}</div><div class=\"gpn-shortDescription\">{info.Organization} {info.Status}</div>"; description = $"<div class=\"gpn-key\">Инициатива:</div><div class=\"gpn-value\">{info.Iid}</div>" + $"<div class=\"gpn-key\">Создана:</div><div class=\"gpn-value\">{info.Created:dd.MM.yyyy}</div>" + $"<div class=\"gpn-key\">Автор:</div><div class=\"gpn-value\">{info.Author}</div>" + $"<div class=\"gpn-key\">Организация/подразделение:</div><div class=\"gpn-value\">{info.Organization}</div>" + $"<div class=\"gpn-key\">Проблема:</div><div class=\"gpn-value\">{info.Problem}</div>" + $"<div class=\"gpn-key\">Решение:</div><div class=\"gpn-value\">{info.Solution}</div>" + $"<div class=\"gpn-key\">Статус:</div><div class=\"gpn-value\">{info.Status}</div>" + $"<div class=\"gpn-key\">Количество комментариев:</div><div class=\"gpn-value\">{info.CommentsCount}</div>" + $"<div class=\"gpn-key\">Дата последнего комментария:</div><div class=\"gpn-value\">{info.LastCommentDate ?? "-"}</div>" + $"<div class=\"gpn-key\">Комментарий:</div><div class=\"gpn-value\">{info.LastCommentText ?? "-"}</div>"; iid = pid; } } var answer = Message.Answer(source, body); answer.Description = description; answer.Title = title; answer.Iid = iid; answer.CanClick = true; answer.Created = startTime; userMessages.Enqueue(answer); } users.SetMessages(user.GUID, QueueType.information, userMessages); users.SetLastMessageID(user.GUID); return(true, null, null); }