Example #1
0
        public async Task <Guid?> AddAsync(CreateLocalizationProject project) //(LocalizationProject project)
        {
            //project.Date_Of_Creation = project.Last_Activity = DateTime.Now;

            var sqlQuery = "INSERT INTO localization_projects " +
                           "(name_text, description, url, " +
                           "visibility, " +
                           "date_of_creation, last_activity, " +
                           "id_source_locale, " +
                           "able_to_download, " +
                           "able_to_left_errors, " +
                           "default_string, " +
                           "notify_new, notify_finish, notify_confirm, " +
                           "logo, " +
                           "notify_new_comment, " +
                           "export_only_approved_translations, " + "original_if_string_is_not_translated, " + "able_translators_change_terms_in_glossaries " +
                           ") " +
                           "VALUES('"
                           + project.Name_text + "','" + project.Description + "','" + project.URL + "','"
                           + project.Visibility + "','"
                           + /*project.Date_Of_Creation*/ DateTime.Now + "','" + /*project.Last_Activity*/ DateTime.Now + "','"
                           + project.ID_Source_Locale + "','"
                           + project.Able_To_Download + "','"
                           + project.Able_To_Left_Errors + "','"
                           + project.Default_String + "','"
                           + project.Notify_New + "','" + project.Notify_Finish + "','" + project.Notify_Confirm + "','"
                           + project.Logo + "','"

                           + project.notify_new_comment + "','"
                           + project.export_only_approved_translations + "','" + project.original_if_string_is_not_translated + "','" + project.able_translators_change_terms_in_glossaries +

                           "')"
                           + " RETURNING localization_projects.id";

            try
            {
                using (var dbConnection = new NpgsqlConnection(connectionString))
                {
                    this.LogQuery(sqlQuery);
                    Guid?projectId = await dbConnection.ExecuteScalarAsync <Guid>(sqlQuery, project);

                    return((Guid)projectId);
                }
            }

            catch (NpgsqlException exception)
            {
                this._loggerError.WriteLn(
                    $"Ошибка в {nameof(LocalizationProjectRepository)}.{nameof(LocalizationProjectRepository.AddAsync)} {nameof(NpgsqlException)} ",
                    exception);
                return(null);
            }
            catch (Exception exception)
            {
                this._loggerError.WriteLn(
                    $"Ошибка в {nameof(LocalizationProjectRepository)}.{nameof(LocalizationProjectRepository.AddAsync)} {nameof(Exception)} ",
                    exception);
                return(null);
            }
        }
Example #2
0
        public async Task <Guid?> CreateAsync(CreateLocalizationProject project)
        {
            var projectId = await _localizationProjectRepository.AddAsync(project);

            await _userActionRepository.AddCreateProjectActionAsync((Guid)ur.GetID(User.Identity.Name), User.Identity.Name, (Guid)projectId, (Guid)project.ID_Source_Locale);

            var userId      = (Guid)ur.GetID(User.Identity.Name);
            var roleIdOwner = (Guid)_roleRepository.GetRoleId("owner");

            var participant = new Participant
            {
                ID_Localization_Project = projectId,
                ID_User = userId,
                ID_Role = roleIdOwner,
                Active  = true
            };

            await _participantsRepository.AddAsync(participant);

            return(projectId);
        }