Проектування та реалізація 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