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); } }
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); }