Пример #1
0
 private void WriteUserResultInConsul(Result result, OldUser oldUser, Test test, ShellResult shell)
 {
     var dbManager = new ConsulIntegratorManager();
     dbManager.AddShellResult(oldUser, result, test, shell);
 }
Пример #2
0
        public void SaveResultsForImport(Result result, List<WebConcreteQuestion> webResultItems = null)
        {
            using (var shellResultRepository = new BaseRepository<ShellResult>())
            {
                var user = GetUserByResult(result.Id);
                var test = GetTestByResult(result.Id);
                var resultItems = GetResultItemsByResult(result.Id);

                var resultConverterItem = new ResultConverter(user, test, resultItems);
                resultConverterItem.SetTestSettingsByDefault();

                // Kot test
                //if (webResultItems != null && String.Equals(test.CodeName, Constraints.KKotCodeName))
                //{
                //    resultConverterItem.FormKotAnswers(webResultItems);
                //}
                //else
                //{
                //    resultConverterItem.FormAnswers();
                //}

                var shellResult = new ShellResult
                                      {
                                          ResultId = result.Id,
                                          TestDate = result.TestDate,
                                          UserId = user.Id,
                                          MethodId = resultConverterItem.TestSettings.MethodId
                                      };
                if (webResultItems != null && String.Equals(test.CodeName, Constraints.KKotCodeName))
                {
                    shellResult.Answer = resultConverterItem.FormKotAnswers(webResultItems);
                }
                else
                {
                    shellResult.Answer = resultConverterItem.FormAnswers();
                }

                if (!shellResultRepository.Create(shellResult).Status)
                {
                    throw new CreateException();
                }
            }
        }
Пример #3
0
        public void AddShellResult(OldUser oldUser, Result result, Test test, ShellResult shellResut)
        {
            try
            {
                _connection.Open();
                int count = -1;

                // Check OldUser exists
                String name = oldUser.FirstName + " " + oldUser.LastName;
                if (name.Length == 1)
                {
                    name = String.Empty;
                }
                String login = oldUser.Login;
                String gender = String.Empty;
                if (oldUser.Gender)
                {
                    gender = "M";
                }
                else
                {
                    gender = "F";
                }
                var query = String.Empty;
                if (name.Length > 0)
                {
                    query = @"SELECT count(*) FROM [USER] where [NAME] = '" + name + "'" +
                           " AND [GENDER] = '" + gender + "' AND [DATE] = #" + oldUser.BirthDate.ToString("yyyy-MM-dd") + "#";
                }
                else
                {
                    query = @"SELECT count(*) FROM [USER] where [NAME] = '" + login + "'" +
                           " AND [GENDER] = '" + gender + "' AND [DATE] = #" + oldUser.BirthDate.ToString("yyyy-MM-dd") + "#";
                }

                //query = @"SELECT count(*) FROM [USER] where [NAME] IN ('" + name + "','" + login + "') " +
                //            " AND [GENDER] = '" + gender + "' AND [DATE] = #" + OldUser.BirthDate.ToString("yyyy-MM-dd") + "#";

                var command = new OleDbCommand(query, _connection);
                var reader = command.ExecuteReader();
                while (reader.Read())
                {
                    count = reader.GetInt32(0);
                }
                if (count <= 0)
                {

                    // Select firstname + lastname ot login
                    var resName = String.Empty;
                    if (name.Length <= 0)
                    {
                        resName = login;
                    }
                    else
                    {
                        resName = name;
                    }
                    // Cut name to 30 symbols
                    if (resName.Length >= 30)
                    {
                        resName = resName.Remove(29);
                    }

                    // Create OldUser
                    query = "INSERT INTO [USER] (NAME, GENDER, [DATE]) VALUES('"
                        + resName + "', '" + gender +"', #" + oldUser.BirthDate.ToString("yyyy-MM-dd") + "#)";
                    command = new OleDbCommand(query, _connection);
                    if (command.ExecuteNonQuery() <= 0)
                    {
                        throw new ConsulDBException();
                    }

                }

                // GET id of OldUser
                int userId = -1;

                if (name.Length > 0)
                {
                    query = @"SELECT ID FROM [USER] where [NAME] = '" + name + "'" +
                           " AND [GENDER] = '" + gender + "' AND [DATE] = #" + oldUser.BirthDate.ToString("yyyy-MM-dd") + "#";
                }
                else
                {
                    query = @"SELECT ID FROM [USER] where [NAME] = '" + login + "'" +
                           " AND [GENDER] = '" + gender + "' AND [DATE] = #" + oldUser.BirthDate.ToString("yyyy-MM-dd") + "#";
                }

                //query = @"SELECT ID FROM [USER] where [NAME] = '" + name + "'" +
                //            " AND [GENDER] = '" + gender + "' AND [DATE] = #" + OldUser.BirthDate.ToString("yyyy-MM-dd") + "#";
                command = new OleDbCommand(query, _connection);
                reader = command.ExecuteReader();
                while (reader.Read())
                {
                    userId = reader.GetInt32(0);
                }

                var comment = result.TestDate.ToString("dd.MM.yyyy_HH.mm.ss") + "_"
                                  + oldUser.FirstName + "_"
                                  + oldUser.LastName + "_"
                                  + oldUser.BirthDate.ToString("dd.MM.yyyy") + "_"
                                  + test.CodeName;

                // Create result
                query = "INSERT INTO [RESULT] (U_ID, M_ID, DATA, COMMENT, [DATE]) VALUES ("
                        + userId + ", " + shellResut.MethodId + ", '" + shellResut.Answer + "', '" + comment + "', #" + result.TestDate.ToString("yyyy-MM-dd HH:mm:ss") + "#)";
                command = new OleDbCommand(query, _connection);
                if (command.ExecuteNonQuery() <= 0)
                {
                    throw new ConsulDBException();
                }

                _connection.Close();
            }
            catch (Exception)
            {
                throw new ConsulDBException();
            }
        }