Проектування та реалізація Web-сервісу для пошуку роботи

Розробка Web-сервісу, його використання у пошуковій системі. Формування основних вимог до програмної системи, приклади головних алгоритмів та методів. Функціональне та нефункціональне тестування бази даних. Особливості кросбраузерного тестування.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 16.06.2017
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

}

else

{

result = this.NotFound(id.ToString());

}

return result;

}

}

}

namespace Store.WebApi.Data

{

using Microsoft.Extensions.Logging;

using Store.WebApi.Core;

using NullGuard;

using System.Collections.Generic;

using Store.WebApi.Models;

using System;

using System.Linq;

using Store.WebApi.Extentions;

public class DataProvider

{

private readonly ILogger logger;

private Data data;

private readonly AppDataHelper appDataHelper;

public DataProvider(AppDataHelper appDataHelper, ILoggerFactory loggerFactory)

{

this.logger = loggerFactory.CreateLogger<DataProvider>();

this.appDataHelper = appDataHelper;

this.Deserialize("datasource.xml");

}

public IReadOnlyCollection<Application> Applications => this.data.Applications.AsReadOnly();

public IReadOnlyCollection<Publisher> Publishers => this.data.Publishers.AsReadOnly();

publi StoreInfo GetStoreInfo()

{

return this.data.StoreInfo;

}

[return: AllowNull]

public Package GetPackageById(Guid id)

{

Package result = null;

foreach (var application in this.data.Applications)

{

foreach (var applicationPackage in application.Packages)

{

if (applicationPackage.Id == id)

{

result = applicationPackage;

break;

}

}

if (reult != null)

{

break;

}

}

return result;

}

public void Deserialize(string fileName)

{

Data apps = null;

try

{

var xml = this.appDataHelper.ReadAllText(fileName);

apps = xml.XmlDeserializeFromString<Data>();

foreach (var app in apps.Applications)

{

var publisher = apps.Publishers.First(c => c.Id == app.PublisherId);

app.Publisher = publisher.PublisherDisplayName;

}

}

catch (Exception ex)

{

this.logger.LogError(ex.Message);

}

this.data = apps ?? new Data();

}

}

}

namespace EntityFrameworkDataService.Repositories.Implementations

{

using System.Data.Entity;

using Microsoft.AspNet.Identity;

using Microsoft.AspNet.Identity.EntityFramework;

using RFIDCardService.Models.Entities;

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1063:ImplementIDisposableCorrectly")]

public class ExtendedRoleStore<TRole> : RoleStore<TRole, string, ApplicationUserRole>, IQueryableRoleStore<TRole> where TRole : ApplicationRole, new()

{

public ExtendedRoleStore(DbContext context) : base(context)

{

}

}

}

namespace EntityFrameworkDataService.Repositories.Implementations

{

using System.Data.Entity.Utilities;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using System.Data.Entity;

using Microsoft.AspNet.Identity;

using Microsoft.AspNet.Identity.EntityFramework;

using RFIDCardService.Models.Entities;

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1063:ImplementIDisposableCorrectly")]

public class ExtendedUserStore<TUser> : UserStore<TUser, ApplicationRole, string, IdentityUserLogin, ApplicationUserRole, IdentityUserClaim>, IUserStore<TUser> where TUser : User

{

private readonly DbContext context;

public ExtendedUserStore(DbContext context) : base(context)

{

this.context = context;

}

/// <summary>Get the names of the roles a user is a member of</summary>

/// <param name="user"></param>

/// <returns></returns>

public override async Task<IList<string>> GetRolesAsync(TUser user)

{

var userRoles = this.context.Set<ApplicationUserRole>();

var roles = this.context.Set<ApplicationRole>();

if (user == null)

{

throw new ArgumentNullException(nameof(user));

}

//нужно для управления правами

short tenantId = TenantEx.GetTenantId();

var userId = user.Id;

var query = from userRole in userRoles

join role in roles on userRole.RoleId equals role.Id

where userRole.UserId.Equals(userId) && userRole.TenantId.Equals(tenantId)

select role.Name;

return await query.ToListAsync();

}

/// <summary>Returns true if the user is in the named role</summary>

/// <param name="user"></param>

/// <param name="roleName"></param>

/// <returns></returns>

public override async Task<bool> IsInRoleAsync(TUser user, string roleName)

{

if (user == null)

{

throw new ArgumentNullException(nameof(user));

}

if (string.IsNullOrWhiteSpace(roleName))

{

throw new ArgumentNullException(nameof(roleName));

}

var userRoles = this.context.Set<ApplicationUserRole>();

var roles = this.context.Set<ApplicationRole>();

var role = await roles.SingleOrDefaultAsync(r => r.Name.ToUpper() == roleName.ToUpper());

if (role != null)

{

var userId = user.Id;

var roleId = role.Id;

return await userRoles.AnyAsync(ur => ur.RoleId.Equals(roleId) && ur.UserId.Equals(userId) && ur.TenantId == user.CurrentTenantId);

}

return false;

}

/// <summary>

/// Remove a user from a role

/// </summary>

/// <param name="user"></param>

/// <param name="roleName"></param>

/// <returns></returns>

public override async Task RemoveFromRoleAsync(TUser user, string roleName)

{

if (user == null)

{

throw new ArgumentNullException(nameof(user));

}

if (string.IsNullOrWhiteSpace(roleName))

{

throw new ArgumentException(nameof(roleName));

}

var roles = this.context.Set<ApplicationRole>();

var roleEntity = await roles.SingleOrDefaultAsync(r => r.Name.ToUpper() == roleName.ToUpper()).WithCurrentCulture();

if (roleEntity != null)

{

var roleId = roleEntity.Id;

var userId = user.Id;

var userRoles = this.context.Set<ApplicationUserRole>();

var tenantId = TenantEx.GetTenantId();

var userRole = await userRoles.FirstOrDefaultAsync(r => roleId.Equals(r.RoleId) && r.UserId.Equals(userId) && r.TenantId == tenantId).WithCurrentCulture();

if (userRole != null)

{

userRoles.Remove(userRole);

}

}

}

/// <summary>Add a user to a role</summary>

/// <param name="user"></param>

/// <param name="roleName"></param>

/// <returns></returns>

public override async Task AddToRoleAsync(TUser user, string roleName)

{

if (user == null)

{

throw new ArgumentNullException(nameof(user));

}

if (string.IsNullOrWhiteSpace(roleName))

{

throw new ArgumentNullException(nameof(roleName));

}

var roles = this.context.Set<ApplicationRole>();

Размещено на Allbest.ru


Подобные документы

  • Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".

    курсовая работа [4,0 M], добавлен 02.12.2014

  • Особливості побудови та роботи з об’єктно-реляційною моделлю даних в інструментальній системі управління базами даних PostgreSQL. Розробка бази даних факультету, що має у підпорядкуванні кілька кафедр. Тестування роботи спроектованої бази даних.

    курсовая работа [1,8 M], добавлен 09.05.2014

  • Основні способи тестування роботи паралельної системи. Функціональне тестування та тестування загальної швидкості. Способи організації та налаштування кластера. Програма для створення віртуальних операційних систем шляхом виділення ресурсів комп'ютера.

    лабораторная работа [3,4 M], добавлен 02.06.2011

  • Коротка характеристика об’єктів управління "Nix Solutions". Розроблення варіантів використання, специфікація функціональних та не функціональних вимог. Проектування структури бази даних, елементи. Тестування додатку та розгортання програмного продукту.

    дипломная работа [1,5 M], добавлен 01.07.2015

  • Аналіз об'єктів дослідження, проектування баз даних. Розробка програмного забезпечення для роботи зі спроектованою базою даних. Реалізація індексів, опис метаданих в середовищі MySQL. Специфікація DDL для MySQL, протокол тестування DDL-сценарії.

    контрольная работа [389,9 K], добавлен 05.01.2014

  • Дослідження теоретичних аспектів проектування автоматизованих систем тестування знань. Розробка програми, яка призначена для забезпечення автоматизації процесу формування тестів та всього процесу контролю знань у дистанційній навчальній системі.

    дипломная работа [2,1 M], добавлен 26.10.2012

  • Характеристика об’єкта автоматизації, вимоги до системи, склад та зміст системи. Розробка функціональної схеми програмного продукту. Тестування підпрограми програмного продукту. Розробка бази даних та налаштування ECO компонент в Borland Developer Studio.

    практическая работа [1,8 M], добавлен 05.06.2014

  • База даних як організована структура, призначена для зберігання інформації. Проектування та реалізація в СУБД MS Access інформаційної системи "База даних Internet-ресурсів тестів з психології". Розробка логічної системи даних, інструкції користувача.

    курсовая работа [5,3 M], добавлен 22.10.2012

  • Специфікація вимог користувачів підсистеми, нормативні документи. Опис вхідної та вихідної інформації, алгоритм проектування. Побудова реляційної бази даних. Тестування підсистеми. Формування запитів на мові SQL. Розробка інформаційної підсистеми.

    курсовая работа [160,8 K], добавлен 12.11.2014

  • Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.

    дипломная работа [1,7 M], добавлен 25.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.