Compare commits

...

9 Commits

27 changed files with 705 additions and 734 deletions
+2
View File
@@ -0,0 +1,2 @@
[Bb]in/
[Oo]bj/
+32
View File
@@ -0,0 +1,32 @@
# Domain Description
## Entities
* Book
* Shelf
* BookInstance
* Member
* LendRecord
## User Stories
### Book count
In the morning the librarian has to count the books in 1 shelf. There are several shelfs. Every day the librarian checks the status of the books in one shelf that they haven't done in the longest time.
Upon book count complete a report will be generated telling the librarian what books are missing. In case there are any books missing they can do an investigation on their own. However this investigation will not be tracked through this software and is considered out of scope. The book if not found will be marked as lost. If the librarian ever finds this book again will have the option to unmark the book from lost status.
### Reading Time
The members are allowed to come in and read any book of their liking within the library. If they want to put the book back it is recommended to give the book to the librarian and they can put it back in the shelf it needs to be in. The system idealy has a way to scan the book and get the shelf name very quickly and always available so that librarian doesn't have to spend alot of time thinking about where the book goes. </br>
Ideally there will be a bulk option as well in case the librarian is busy with work. When in this pannel the books scanned will change status to put aside. The putaside pannel will organize books by shelf number so that the librarian can group the books and move them together to each shelf in groups.
### Lending Pannel
While normal operations is running members can bring books to the librarian and ask for them to be lended. The books will have an attached physical history writen with pen and paper. Along with the members first name the lend record number/code will be writen down as verification.This code should be randomly generated and unique for each lend record, idealy short so as to not write down a long code.
### Registration
The librarian will need to register new members as they walk in. They will need to fill in a form will all their information. We will collect their name, phone and email for late fee notifications and reminders.
### Books and instance registration
When the new books arrive they will be kept in storage until the book and their instances can be created and distrubuted to correct shelves ordered by the librarian according to their discretion.
### Librarians Registration
When a new librarian is hired another librarian will have to register the new librarian and setup a password for them.
# Library Technical Decisions
It is my belief that a web application will best fit the job as it can be mobile friendly. If a librarian needs to quickly check something they can do it over the phone without having to rush back to the computer to do so.
+30
View File
@@ -0,0 +1,30 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain;
public class BookCountReport
{
public ShelfId ShelfId { get; }
public DateTime CountedAt { get; }
public IReadOnlyList<BookInstance> MissingInstances { get; }
public int TotalExpected { get; }
public int TotalFound { get; }
public BookCountReport(
ShelfId shelfId,
DateTime countedAt,
IReadOnlyList<BookInstance> allInstancesOnShelf,
IReadOnlyList<BookInstanceBarcode> scannedBarcodes)
{
ShelfId = shelfId;
CountedAt = countedAt;
TotalExpected = allInstancesOnShelf.Count;
var scannedSet = scannedBarcodes.Select(b => b.Barcode).ToHashSet();
MissingInstances = allInstancesOnShelf
.Where(i => !scannedSet.Contains(i.Barcode.Barcode))
.ToList();
TotalFound = TotalExpected - MissingInstances.Count;
}
}
-6
View File
@@ -1,6 +0,0 @@
namespace LibraryApp.Domain;
public class Class1
{
}
+13
View File
@@ -0,0 +1,13 @@
namespace LibraryApp.Domain;
public record DbId
{
public string Id { get; init; }
public bool BlankId => string.IsNullOrWhiteSpace(Id);
public DbId(string id)
{
if(id is null)
throw new ArgumentNullException(nameof(id));
Id = id;
}
}
+65
View File
@@ -0,0 +1,65 @@
namespace LibraryApp.Domain.Entities;
public class Book
{
public BookId Id { get; private set; }
public BookTitle Title { get; private set; }
public BookAuthor Author { get; private set; }
public Book(BookTitle title, BookAuthor author)
: this(new BookId(string.Empty), title, author)
{ }
public Book(BookId id, BookTitle title, BookAuthor author)
{
Id = id;
Title = title;
Author = author;
}
public Book UpdateTitle(string newTitle)
{
Title = new (newTitle);
return this;
}
public Book UpdateAuthor(string newAuthor)
{
Author = new (newAuthor);
return this;
}
}
public record BookId : DbId
{
public BookId(string id) : base(id) {}
}
public record BookTitle
{
public string Title { get; init; }
public BookTitle(string title)
{
if(string.IsNullOrWhiteSpace(title))
{
throw new ArgumentException("Title cannot be empty.");
}
Title = title;
}
}
public record BookAuthor
{
public string Author { get; init; }
public BookAuthor(string author)
{
if(string.IsNullOrWhiteSpace(author))
{
throw new ArgumentException("Author cannot be empty.");
}
Author = author;
}
}
@@ -0,0 +1,99 @@
namespace LibraryApp.Domain.Entities;
public enum BookInstanceStatus
{
OnShelf,
Lent,
PutAside,
Lost
}
public class BookInstance
{
public BookInstanceId Id { get; private set; }
public BookId BookId { get; private set; }
public ShelfId ShelfId { get; private set; }
public BookInstanceBarcode Barcode { get; private set; }
public BookInstanceStatus Status { get; private set; }
public BookInstance(BookId bookId, ShelfId shelfId, BookInstanceBarcode barcode)
: this(new BookInstanceId(string.Empty), bookId, shelfId, barcode, BookInstanceStatus.OnShelf)
{ }
public BookInstance(BookInstanceId id, BookId bookId, ShelfId shelfId, BookInstanceBarcode barcode, BookInstanceStatus status)
{
Id = id;
BookId = bookId;
ShelfId = shelfId;
Barcode = barcode;
Status = status;
}
public BookInstance MarkAsLent()
{
if (Status != BookInstanceStatus.OnShelf)
throw new InvalidOperationException($"Cannot lend a book that is not on the shelf. Current status: {Status}.");
Status = BookInstanceStatus.Lent;
return this;
}
public BookInstance ReturnToShelf()
{
if (Status != BookInstanceStatus.Lent)
throw new InvalidOperationException($"Cannot return a book that is not lent out. Current status: {Status}.");
Status = BookInstanceStatus.OnShelf;
return this;
}
public BookInstance MarkAsPutAside()
{
if (Status != BookInstanceStatus.OnShelf)
throw new InvalidOperationException($"Cannot put aside a book that is not on the shelf. Current status: {Status}.");
Status = BookInstanceStatus.PutAside;
return this;
}
public BookInstance PlaceOnShelf(ShelfId shelfId)
{
if (Status != BookInstanceStatus.PutAside)
throw new InvalidOperationException($"Cannot place on shelf a book that is not put aside. Current status: {Status}.");
ShelfId = shelfId;
Status = BookInstanceStatus.OnShelf;
return this;
}
public BookInstance MarkAsLost()
{
if (Status != BookInstanceStatus.OnShelf)
throw new InvalidOperationException($"Cannot mark as lost a book that is not on the shelf. Current status: {Status}.");
Status = BookInstanceStatus.Lost;
return this;
}
public BookInstance UnmarkAsLost()
{
if (Status != BookInstanceStatus.Lost)
throw new InvalidOperationException($"Cannot unmark as lost a book that is not marked as lost. Current status: {Status}.");
Status = BookInstanceStatus.OnShelf;
return this;
}
}
public record BookInstanceId : DbId
{
public BookInstanceId(string id) : base(id) {}
}
public record BookInstanceBarcode
{
public string Barcode { get; init; }
public BookInstanceBarcode(string barcode)
{
if(string.IsNullOrWhiteSpace(barcode))
{
throw new ArgumentException("Barcode cannot be empty.");
}
Barcode = barcode;
}
}
+72
View File
@@ -0,0 +1,72 @@
namespace LibraryApp.Domain.Entities;
public class LendRecord
{
public LendRecordId Id { get; private set; }
public BookInstanceId BookInstanceId { get; private set; }
public MemberId MemberId { get; private set; }
public LendCode Code { get; private set; }
public DateTime LendDate { get; private set; }
public DateTime? ReturnDate { get; private set; }
public LendRecord(BookInstanceId bookInstanceId, MemberId memberId, LendCode code)
: this(new LendRecordId(string.Empty), bookInstanceId, memberId, code, DateTime.UtcNow, null)
{ }
public LendRecord(LendRecordId id, BookInstanceId bookInstanceId, MemberId memberId, LendCode code, DateTime lendDate, DateTime? returnDate)
{
Id = id;
BookInstanceId = bookInstanceId;
MemberId = memberId;
Code = code;
LendDate = lendDate;
ReturnDate = returnDate;
}
public LendRecord MarkAsReturned()
{
if(ReturnDate != null)
throw new InvalidOperationException("This lend record is already marked as returned.");
ReturnDate = DateTime.UtcNow;
return this;
}
public LendRecord UpdateLendDate(DateTime newLendDate)
{
if(ReturnDate != null)
throw new InvalidOperationException("Cannot update lend date for a record that is already marked as returned.");
LendDate = newLendDate;
return this;
}
public LendRecord UnmarkAsReturned()
{
if(ReturnDate == null)
throw new InvalidOperationException("This lend record is not marked as returned.");
ReturnDate = null;
return this;
}
}
public record LendRecordId : DbId
{
public LendRecordId(string id) : base(id) {}
}
/// <summary>
/// A short, human-friendly code written on the physical lend slip alongside the member's name.
/// Must be unique per lend record and no longer than 8 characters.
/// </summary>
public record LendCode
{
public string Code { get; init; }
public LendCode(string code)
{
if (string.IsNullOrWhiteSpace(code))
throw new ArgumentException("Lend code cannot be empty.");
if (code.Length > 8)
throw new ArgumentException("Lend code cannot exceed 8 characters.");
Code = code.ToUpperInvariant();
}
}
+119
View File
@@ -0,0 +1,119 @@
namespace LibraryApp.Domain.Entities;
public class Member
{
public MemberId Id { get; private set; }
public MemberName Name { get; private set; }
public List<MemberEmail> Emails { get; private set; } = new();
public List<MemberPhone> Phones { get; private set; } = new();
public int PrimaryEmailIndex { get; private set; } = 0;
public int PrimaryPhoneIndex { get; private set; } = 0;
public Member(MemberName name, MemberEmail email, MemberPhone phone)
: this(new MemberId(string.Empty), name, email, phone)
{ }
public Member(MemberId id, MemberName name, MemberEmail email, MemberPhone phone)
{
Id = id;
Name = name;
Emails.Add(email);
Phones.Add(phone);
}
public Member UpdateName(string newName)
{
Name = new (newName);
return this;
}
public Member AddEmail(string email)
{
Emails.Add(new MemberEmail(email));
return this;
}
public Member AddPhone(string phone)
{
Phones.Add(new MemberPhone(phone));
return this;
}
public Member SetPrimaryEmail(MemberEmail email)
{
var index = Emails.FindIndex(e => e.Email == email.Email);
if(index == -1)
throw new ArgumentException("Email not found in member's email list.", nameof(email));
PrimaryEmailIndex = index;
return this;
}
public Member SetPrimaryPhone(MemberPhone phone)
{
var index = Phones.FindIndex(p => p.Phone == phone.Phone);
if(index == -1)
throw new ArgumentException("Phone not found in member's phone list.", nameof(phone));
PrimaryPhoneIndex = index;
return this;
}
}
public record MemberId : DbId
{
public MemberId(string id) : base(id) {}
}
public record MemberEmail
{
public string Email { get; init; }
public MemberEmail(string email)
{
if(string.IsNullOrWhiteSpace(email))
throw new ArgumentException("Email cannot be empty.");
if(!email.Contains("@"))
throw new ArgumentException("Email must contain '@'.");
if(!email.Contains("."))
throw new ArgumentException("Email must contain '.'.");
if(email.StartsWith("@") || email.EndsWith("@"))
throw new ArgumentException("Email cannot start or end with '@'.");
var atCount = email.Count(c => c == '@');
if(atCount > 1)
throw new ArgumentException("Email cannot contain more than one '@'.");
var dotCount = email.Count(c => c == '.');
if(dotCount > 1)
throw new ArgumentException("Email cannot contain more than one '.'.");
Email = email;
}
}
public record MemberName
{
public string Name { get; init; }
public MemberName(string name)
{
if(string.IsNullOrWhiteSpace(name))
{
throw new ArgumentException("Member name cannot be empty.");
}
Name = name;
}
}
public record MemberPhone
{
private const string VALID_PHONE_PATTERN = @"^\+?[1-9]\d{1,14}$";
public string Phone { get; init; }
public MemberPhone(string phone)
{
if(string.IsNullOrWhiteSpace(phone))
throw new ArgumentException("Phone number cannot be empty.");
if(!System.Text.RegularExpressions.Regex.IsMatch(phone, VALID_PHONE_PATTERN))
throw new ArgumentException("Phone number is not in a valid format.");
Phone = phone;
}
}
+44
View File
@@ -0,0 +1,44 @@
namespace LibraryApp.Domain.Entities;
public class Shelf
{
public ShelfId Id { get; private set; }
public ShelfName Name { get; private set; }
public DateTime? LastCountedAt { get; private set; }
public Shelf(ShelfName name)
: this(new ShelfId(string.Empty), name, null)
{ }
public Shelf(ShelfId id, ShelfName name, DateTime? lastCountedAt)
{
Id = id;
Name = name;
LastCountedAt = lastCountedAt;
}
public Shelf RecordCount()
{
LastCountedAt = DateTime.UtcNow;
return this;
}
}
public record ShelfId : DbId
{
public ShelfId(string id) : base(id) {}
}
public record ShelfName
{
public string Name { get; init; }
public ShelfName(string name)
{
if(string.IsNullOrWhiteSpace(name))
{
throw new ArgumentException("Shelf name cannot be empty.");
}
Name = name;
}
}
+14
View File
@@ -0,0 +1,14 @@
namespace LibraryApp.Domain;
public record Error
{
public string Message { get; init; }
public Error(string message)
{
Message = message;
}
public static implicit operator Error(string message) => new Error(message);
public static implicit operator string(Error error) => error.Message;
}
@@ -0,0 +1,15 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Repositories;
public interface IBookInstanceRepository
{
public Task<Result<BookInstance>> GetByIdAsync(BookInstanceId id);
public Task<Result<BookInstance>> GetByBarcodeAsync(BookInstanceBarcode barcode);
public Task<Result<List<BookInstance>>> GetAllByShelfIdAsync(ShelfId shelfId);
public Task<Result<List<BookInstance>>> GetAllByStatusAsync(BookInstanceStatus status);
public Task<Result<BookInstance>> UpdateAsync(BookInstance bookInstance);
public Task<Result<List<BookInstance>>> GetAllAsync(int pageNumber, int pageSize);
public Task<Result<BookInstance>> AddAsync(BookInstance bookInstance);
public Task<Result> DeleteAsync(BookInstanceId id);
}
+12
View File
@@ -0,0 +1,12 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Repositories;
public interface IBookRepository
{
public Task<Result<Book>> GetAsync(BookId id);
public Task<Result<Book>> UpdateAsync(Book book);
public Task<Result<List<Book>>> GetAllAsync(int pageNumber, int pageSize);
public Task<Result<Book>> AddAsync(Book book);
public Task<Result> DeleteAsync(BookId id);
}
@@ -0,0 +1,15 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Repositories;
public interface ILendRecordRepository
{
public Task<Result<LendRecord>> GetAsync(LendRecordId id);
public Task<Result<List<LendRecord>>> GetAllByMemberIdAsync(MemberId memberId);
public Task<Result<LendRecord?>> GetActiveByBookInstanceIdAsync(BookInstanceId bookInstanceId);
public Task<bool> ExistsWithCodeAsync(LendCode code);
public Task<Result<LendRecord>> UpdateAsync(LendRecord lendRecord);
public Task<Result<List<LendRecord>>> GetAllAsync(int pageNumber, int pageSize);
public Task<Result<LendRecord>> AddAsync(LendRecord lendRecord);
public Task<Result> DeleteAsync(LendRecordId id);
}
@@ -0,0 +1,12 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Repositories;
public interface IMemberRepository
{
public Task<Result<Member>> GetAsync(MemberId id);
public Task<Result<Member>> UpdateAsync(Member member);
public Task<Result<List<Member>>> GetAllAsync(int pageNumber, int pageSize);
public Task<Result<Member>> AddAsync(Member member);
public Task<Result> DeleteAsync(MemberId id);
}
@@ -0,0 +1,14 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Repositories;
public interface IShelfRepository
{
public Task<Result<Shelf>> GetAsync(ShelfId id);
public Task<Result<Shelf>> GetByBookInstanceBarcodeAsync(BookInstanceBarcode barcode);
public Task<Result<Shelf>> GetNextForCountAsync();
public Task<Result<Shelf>> UpdateAsync(Shelf shelf);
public Task<Result<List<Shelf>>> GetAllAsync(int pageNumber, int pageSize);
public Task<Result<Shelf>> AddAsync(Shelf shelf);
public Task<Result> DeleteAsync(ShelfId id);
}
+23
View File
@@ -0,0 +1,23 @@
namespace LibraryApp.Domain;
public record Result
{
public required bool IsSuccess { get; init; }
public Error? ErrorMessage { get; init; }
private Result() { }
public static Result Success() => new Result { IsSuccess = true };
public static Result Failure(string errorMessage) => new Result { IsSuccess = false, ErrorMessage = errorMessage };
}
public record Result<T>
{
public required bool IsSuccess { get; init; }
public T? Value { get; init; }
public Error? ErrorMessage { get; init; }
private Result() { }
public static Result<T> Success(T value) => new Result<T> { IsSuccess = true, Value = value };
public static Result<T> Failure(string errorMessage) => new Result<T> { IsSuccess = false, ErrorMessage = errorMessage };
}
@@ -0,0 +1,31 @@
using LibraryApp.Domain;
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Services;
public class BookCountService
{
private readonly IBookCountReportPrinter _printer;
public BookCountService(IBookCountReportPrinter printer)
{
_printer = printer;
}
public async Task<Result<BookCountReport>> PerformCountAsync(
Shelf shelf,
IReadOnlyList<BookInstanceBarcode> scannedBarcodes,
IReadOnlyList<BookInstance> allInstancesOnShelf)
{
shelf.RecordCount();
var report = new BookCountReport(shelf.Id, DateTime.UtcNow, allInstancesOnShelf, scannedBarcodes);
foreach (var instance in report.MissingInstances)
instance.MarkAsLost();
await _printer.PrintAsync(report);
return Result<BookCountReport>.Success(report);
}
}
@@ -0,0 +1,6 @@
namespace LibraryApp.Domain.Services;
public interface IBookCountReportPrinter
{
Task PrintAsync(BookCountReport report);
}
@@ -0,0 +1,49 @@
using LibraryApp.Domain.Entities;
using LibraryApp.Domain.Repositories;
namespace LibraryApp.Domain.Services;
public class LendingService
{
private readonly ILendRecordRepository _lendRecords;
public LendingService(ILendRecordRepository lendRecords)
{
_lendRecords = lendRecords;
}
public async Task<Result<LendRecord>> LendBookAsync(BookInstance bookInstance, Member member)
{
if (bookInstance.Status != BookInstanceStatus.OnShelf)
return Result<LendRecord>.Failure($"Book is not available for lending. Current status: {bookInstance.Status}.");
var code = await GenerateUniqueLendCodeAsync();
bookInstance.MarkAsLent();
var record = new LendRecord(bookInstance.Id, member.Id, code);
return Result<LendRecord>.Success(record);
}
public Task<Result> ReturnBookAsync(BookInstance bookInstance, LendRecord lendRecord)
{
if (bookInstance.Status != BookInstanceStatus.Lent)
return Task.FromResult(Result.Failure($"Book is not currently lent out. Current status: {bookInstance.Status}."));
bookInstance.ReturnToShelf();
lendRecord.MarkAsReturned();
return Task.FromResult(Result.Success());
}
private async Task<LendCode> GenerateUniqueLendCodeAsync()
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var random = Random.Shared;
while (true)
{
var code = new string(Enumerable.Range(0, 6).Select(_ => chars[random.Next(chars.Length)]).ToArray());
var lendCode = new LendCode(code);
if (!await _lendRecords.ExistsWithCodeAsync(lendCode))
return lendCode;
}
}
}
+14
View File
@@ -0,0 +1,14 @@
using LibraryApp.Domain;
namespace LibraryApp.Services;
public record Result
{
public required bool IsSuccess { get; init; }
public Error? ErrorMessage { get; init; }
private Result() { }
public static Result Success() => new Result { IsSuccess = true };
public static Result Failure(string errorMessage) => new Result { IsSuccess = false, ErrorMessage = errorMessage };
}
@@ -1,348 +0,0 @@
{
"format": 1,
"restore": {
"C:\\Users\\Shaamil\\Desktop\\LibraryApp\\LibraryApp.Domain\\LibraryApp.Domain.csproj": {}
},
"projects": {
"C:\\Users\\Shaamil\\Desktop\\LibraryApp\\LibraryApp.Domain\\LibraryApp.Domain.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Shaamil\\Desktop\\LibraryApp\\LibraryApp.Domain\\LibraryApp.Domain.csproj",
"projectName": "LibraryApp.Domain",
"projectPath": "C:\\Users\\Shaamil\\Desktop\\LibraryApp\\LibraryApp.Domain\\LibraryApp.Domain.csproj",
"packagesPath": "C:\\Users\\Shaamil\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Shaamil\\Desktop\\LibraryApp\\LibraryApp.Domain\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Shaamil\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net10.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net10.0": {
"targetAlias": "net10.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net10.0": {
"targetAlias": "net10.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.104/PortableRuntimeIdentifierGraph.json",
"packagesToPrune": {
"Microsoft.CSharp": "(,4.7.32767]",
"Microsoft.VisualBasic": "(,10.4.32767]",
"Microsoft.Win32.Primitives": "(,4.3.32767]",
"Microsoft.Win32.Registry": "(,5.0.32767]",
"runtime.any.System.Collections": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.any.System.Globalization": "(,4.3.32767]",
"runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.any.System.IO": "(,4.3.32767]",
"runtime.any.System.Reflection": "(,4.3.32767]",
"runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.any.System.Runtime": "(,4.3.32767]",
"runtime.any.System.Runtime.Handles": "(,4.3.32767]",
"runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.any.System.Text.Encoding": "(,4.3.32767]",
"runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.any.System.Threading.Tasks": "(,4.3.32767]",
"runtime.any.System.Threading.Timer": "(,4.3.32767]",
"runtime.aot.System.Collections": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.aot.System.Globalization": "(,4.3.32767]",
"runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.aot.System.IO": "(,4.3.32767]",
"runtime.aot.System.Reflection": "(,4.3.32767]",
"runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.aot.System.Runtime": "(,4.3.32767]",
"runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
"runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
"runtime.aot.System.Threading.Timer": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.unix.System.Console": "(,4.3.32767]",
"runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
"runtime.unix.System.Net.Primitives": "(,4.3.32767]",
"runtime.unix.System.Net.Sockets": "(,4.3.32767]",
"runtime.unix.System.Private.Uri": "(,4.3.32767]",
"runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.win.System.Console": "(,4.3.32767]",
"runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.win.System.IO.FileSystem": "(,4.3.32767]",
"runtime.win.System.Net.Primitives": "(,4.3.32767]",
"runtime.win.System.Net.Sockets": "(,4.3.32767]",
"runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7.System.Private.Uri": "(,4.3.32767]",
"runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
"System.AppContext": "(,4.3.32767]",
"System.Buffers": "(,5.0.32767]",
"System.Collections": "(,4.3.32767]",
"System.Collections.Concurrent": "(,4.3.32767]",
"System.Collections.Immutable": "(,10.0.32767]",
"System.Collections.NonGeneric": "(,4.3.32767]",
"System.Collections.Specialized": "(,4.3.32767]",
"System.ComponentModel": "(,4.3.32767]",
"System.ComponentModel.Annotations": "(,4.3.32767]",
"System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
"System.ComponentModel.Primitives": "(,4.3.32767]",
"System.ComponentModel.TypeConverter": "(,4.3.32767]",
"System.Console": "(,4.3.32767]",
"System.Data.Common": "(,4.3.32767]",
"System.Data.DataSetExtensions": "(,4.4.32767]",
"System.Diagnostics.Contracts": "(,4.3.32767]",
"System.Diagnostics.Debug": "(,4.3.32767]",
"System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
"System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
"System.Diagnostics.Process": "(,4.3.32767]",
"System.Diagnostics.StackTrace": "(,4.3.32767]",
"System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
"System.Diagnostics.Tools": "(,4.3.32767]",
"System.Diagnostics.TraceSource": "(,4.3.32767]",
"System.Diagnostics.Tracing": "(,4.3.32767]",
"System.Drawing.Primitives": "(,4.3.32767]",
"System.Dynamic.Runtime": "(,4.3.32767]",
"System.Formats.Asn1": "(,10.0.32767]",
"System.Formats.Tar": "(,10.0.32767]",
"System.Globalization": "(,4.3.32767]",
"System.Globalization.Calendars": "(,4.3.32767]",
"System.Globalization.Extensions": "(,4.3.32767]",
"System.IO": "(,4.3.32767]",
"System.IO.Compression": "(,4.3.32767]",
"System.IO.Compression.ZipFile": "(,4.3.32767]",
"System.IO.FileSystem": "(,4.3.32767]",
"System.IO.FileSystem.AccessControl": "(,4.4.32767]",
"System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
"System.IO.FileSystem.Primitives": "(,4.3.32767]",
"System.IO.FileSystem.Watcher": "(,4.3.32767]",
"System.IO.IsolatedStorage": "(,4.3.32767]",
"System.IO.MemoryMappedFiles": "(,4.3.32767]",
"System.IO.Pipelines": "(,10.0.32767]",
"System.IO.Pipes": "(,4.3.32767]",
"System.IO.Pipes.AccessControl": "(,5.0.32767]",
"System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
"System.Linq": "(,4.3.32767]",
"System.Linq.AsyncEnumerable": "(,10.0.32767]",
"System.Linq.Expressions": "(,4.3.32767]",
"System.Linq.Parallel": "(,4.3.32767]",
"System.Linq.Queryable": "(,4.3.32767]",
"System.Memory": "(,5.0.32767]",
"System.Net.Http": "(,4.3.32767]",
"System.Net.Http.Json": "(,10.0.32767]",
"System.Net.NameResolution": "(,4.3.32767]",
"System.Net.NetworkInformation": "(,4.3.32767]",
"System.Net.Ping": "(,4.3.32767]",
"System.Net.Primitives": "(,4.3.32767]",
"System.Net.Requests": "(,4.3.32767]",
"System.Net.Security": "(,4.3.32767]",
"System.Net.ServerSentEvents": "(,10.0.32767]",
"System.Net.Sockets": "(,4.3.32767]",
"System.Net.WebHeaderCollection": "(,4.3.32767]",
"System.Net.WebSockets": "(,4.3.32767]",
"System.Net.WebSockets.Client": "(,4.3.32767]",
"System.Numerics.Vectors": "(,5.0.32767]",
"System.ObjectModel": "(,4.3.32767]",
"System.Private.DataContractSerialization": "(,4.3.32767]",
"System.Private.Uri": "(,4.3.32767]",
"System.Reflection": "(,4.3.32767]",
"System.Reflection.DispatchProxy": "(,6.0.32767]",
"System.Reflection.Emit": "(,4.7.32767]",
"System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
"System.Reflection.Emit.Lightweight": "(,4.7.32767]",
"System.Reflection.Extensions": "(,4.3.32767]",
"System.Reflection.Metadata": "(,10.0.32767]",
"System.Reflection.Primitives": "(,4.3.32767]",
"System.Reflection.TypeExtensions": "(,4.3.32767]",
"System.Resources.Reader": "(,4.3.32767]",
"System.Resources.ResourceManager": "(,4.3.32767]",
"System.Resources.Writer": "(,4.3.32767]",
"System.Runtime": "(,4.3.32767]",
"System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
"System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
"System.Runtime.Extensions": "(,4.3.32767]",
"System.Runtime.Handles": "(,4.3.32767]",
"System.Runtime.InteropServices": "(,4.3.32767]",
"System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
"System.Runtime.Loader": "(,4.3.32767]",
"System.Runtime.Numerics": "(,4.3.32767]",
"System.Runtime.Serialization.Formatters": "(,4.3.32767]",
"System.Runtime.Serialization.Json": "(,4.3.32767]",
"System.Runtime.Serialization.Primitives": "(,4.3.32767]",
"System.Runtime.Serialization.Xml": "(,4.3.32767]",
"System.Security.AccessControl": "(,6.0.32767]",
"System.Security.Claims": "(,4.3.32767]",
"System.Security.Cryptography.Algorithms": "(,4.3.32767]",
"System.Security.Cryptography.Cng": "(,5.0.32767]",
"System.Security.Cryptography.Csp": "(,4.3.32767]",
"System.Security.Cryptography.Encoding": "(,4.3.32767]",
"System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
"System.Security.Cryptography.Primitives": "(,4.3.32767]",
"System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
"System.Security.Principal": "(,4.3.32767]",
"System.Security.Principal.Windows": "(,5.0.32767]",
"System.Security.SecureString": "(,4.3.32767]",
"System.Text.Encoding": "(,4.3.32767]",
"System.Text.Encoding.CodePages": "(,10.0.32767]",
"System.Text.Encoding.Extensions": "(,4.3.32767]",
"System.Text.Encodings.Web": "(,10.0.32767]",
"System.Text.Json": "(,10.0.32767]",
"System.Text.RegularExpressions": "(,4.3.32767]",
"System.Threading": "(,4.3.32767]",
"System.Threading.AccessControl": "(,10.0.32767]",
"System.Threading.Channels": "(,10.0.32767]",
"System.Threading.Overlapped": "(,4.3.32767]",
"System.Threading.Tasks": "(,4.3.32767]",
"System.Threading.Tasks.Dataflow": "(,10.0.32767]",
"System.Threading.Tasks.Extensions": "(,5.0.32767]",
"System.Threading.Tasks.Parallel": "(,4.3.32767]",
"System.Threading.Thread": "(,4.3.32767]",
"System.Threading.ThreadPool": "(,4.3.32767]",
"System.Threading.Timer": "(,4.3.32767]",
"System.ValueTuple": "(,4.5.32767]",
"System.Xml.ReaderWriter": "(,4.3.32767]",
"System.Xml.XDocument": "(,4.3.32767]",
"System.Xml.XmlDocument": "(,4.3.32767]",
"System.Xml.XmlSerializer": "(,4.3.32767]",
"System.Xml.XPath": "(,4.3.32767]",
"System.Xml.XPath.XDocument": "(,5.0.32767]"
}
}
}
}
}
}
@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Shaamil\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Shaamil\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
</Project>
@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
-354
View File
@@ -1,354 +0,0 @@
{
"version": 3,
"targets": {
"net10.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
"net10.0": []
},
"packageFolders": {
"C:\\Users\\Shaamil\\.nuget\\packages\\": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Shaamil\\Desktop\\LibraryApp\\LibraryApp.Domain\\LibraryApp.Domain.csproj",
"projectName": "LibraryApp.Domain",
"projectPath": "C:\\Users\\Shaamil\\Desktop\\LibraryApp\\LibraryApp.Domain\\LibraryApp.Domain.csproj",
"packagesPath": "C:\\Users\\Shaamil\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Shaamil\\Desktop\\LibraryApp\\LibraryApp.Domain\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Shaamil\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net10.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net10.0": {
"targetAlias": "net10.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net10.0": {
"targetAlias": "net10.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.104/PortableRuntimeIdentifierGraph.json",
"packagesToPrune": {
"Microsoft.CSharp": "(,4.7.32767]",
"Microsoft.VisualBasic": "(,10.4.32767]",
"Microsoft.Win32.Primitives": "(,4.3.32767]",
"Microsoft.Win32.Registry": "(,5.0.32767]",
"runtime.any.System.Collections": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.any.System.Globalization": "(,4.3.32767]",
"runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.any.System.IO": "(,4.3.32767]",
"runtime.any.System.Reflection": "(,4.3.32767]",
"runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.any.System.Runtime": "(,4.3.32767]",
"runtime.any.System.Runtime.Handles": "(,4.3.32767]",
"runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.any.System.Text.Encoding": "(,4.3.32767]",
"runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.any.System.Threading.Tasks": "(,4.3.32767]",
"runtime.any.System.Threading.Timer": "(,4.3.32767]",
"runtime.aot.System.Collections": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.aot.System.Globalization": "(,4.3.32767]",
"runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.aot.System.IO": "(,4.3.32767]",
"runtime.aot.System.Reflection": "(,4.3.32767]",
"runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.aot.System.Runtime": "(,4.3.32767]",
"runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
"runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
"runtime.aot.System.Threading.Timer": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.unix.System.Console": "(,4.3.32767]",
"runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
"runtime.unix.System.Net.Primitives": "(,4.3.32767]",
"runtime.unix.System.Net.Sockets": "(,4.3.32767]",
"runtime.unix.System.Private.Uri": "(,4.3.32767]",
"runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.win.System.Console": "(,4.3.32767]",
"runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.win.System.IO.FileSystem": "(,4.3.32767]",
"runtime.win.System.Net.Primitives": "(,4.3.32767]",
"runtime.win.System.Net.Sockets": "(,4.3.32767]",
"runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7.System.Private.Uri": "(,4.3.32767]",
"runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
"System.AppContext": "(,4.3.32767]",
"System.Buffers": "(,5.0.32767]",
"System.Collections": "(,4.3.32767]",
"System.Collections.Concurrent": "(,4.3.32767]",
"System.Collections.Immutable": "(,10.0.32767]",
"System.Collections.NonGeneric": "(,4.3.32767]",
"System.Collections.Specialized": "(,4.3.32767]",
"System.ComponentModel": "(,4.3.32767]",
"System.ComponentModel.Annotations": "(,4.3.32767]",
"System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
"System.ComponentModel.Primitives": "(,4.3.32767]",
"System.ComponentModel.TypeConverter": "(,4.3.32767]",
"System.Console": "(,4.3.32767]",
"System.Data.Common": "(,4.3.32767]",
"System.Data.DataSetExtensions": "(,4.4.32767]",
"System.Diagnostics.Contracts": "(,4.3.32767]",
"System.Diagnostics.Debug": "(,4.3.32767]",
"System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
"System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
"System.Diagnostics.Process": "(,4.3.32767]",
"System.Diagnostics.StackTrace": "(,4.3.32767]",
"System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
"System.Diagnostics.Tools": "(,4.3.32767]",
"System.Diagnostics.TraceSource": "(,4.3.32767]",
"System.Diagnostics.Tracing": "(,4.3.32767]",
"System.Drawing.Primitives": "(,4.3.32767]",
"System.Dynamic.Runtime": "(,4.3.32767]",
"System.Formats.Asn1": "(,10.0.32767]",
"System.Formats.Tar": "(,10.0.32767]",
"System.Globalization": "(,4.3.32767]",
"System.Globalization.Calendars": "(,4.3.32767]",
"System.Globalization.Extensions": "(,4.3.32767]",
"System.IO": "(,4.3.32767]",
"System.IO.Compression": "(,4.3.32767]",
"System.IO.Compression.ZipFile": "(,4.3.32767]",
"System.IO.FileSystem": "(,4.3.32767]",
"System.IO.FileSystem.AccessControl": "(,4.4.32767]",
"System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
"System.IO.FileSystem.Primitives": "(,4.3.32767]",
"System.IO.FileSystem.Watcher": "(,4.3.32767]",
"System.IO.IsolatedStorage": "(,4.3.32767]",
"System.IO.MemoryMappedFiles": "(,4.3.32767]",
"System.IO.Pipelines": "(,10.0.32767]",
"System.IO.Pipes": "(,4.3.32767]",
"System.IO.Pipes.AccessControl": "(,5.0.32767]",
"System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
"System.Linq": "(,4.3.32767]",
"System.Linq.AsyncEnumerable": "(,10.0.32767]",
"System.Linq.Expressions": "(,4.3.32767]",
"System.Linq.Parallel": "(,4.3.32767]",
"System.Linq.Queryable": "(,4.3.32767]",
"System.Memory": "(,5.0.32767]",
"System.Net.Http": "(,4.3.32767]",
"System.Net.Http.Json": "(,10.0.32767]",
"System.Net.NameResolution": "(,4.3.32767]",
"System.Net.NetworkInformation": "(,4.3.32767]",
"System.Net.Ping": "(,4.3.32767]",
"System.Net.Primitives": "(,4.3.32767]",
"System.Net.Requests": "(,4.3.32767]",
"System.Net.Security": "(,4.3.32767]",
"System.Net.ServerSentEvents": "(,10.0.32767]",
"System.Net.Sockets": "(,4.3.32767]",
"System.Net.WebHeaderCollection": "(,4.3.32767]",
"System.Net.WebSockets": "(,4.3.32767]",
"System.Net.WebSockets.Client": "(,4.3.32767]",
"System.Numerics.Vectors": "(,5.0.32767]",
"System.ObjectModel": "(,4.3.32767]",
"System.Private.DataContractSerialization": "(,4.3.32767]",
"System.Private.Uri": "(,4.3.32767]",
"System.Reflection": "(,4.3.32767]",
"System.Reflection.DispatchProxy": "(,6.0.32767]",
"System.Reflection.Emit": "(,4.7.32767]",
"System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
"System.Reflection.Emit.Lightweight": "(,4.7.32767]",
"System.Reflection.Extensions": "(,4.3.32767]",
"System.Reflection.Metadata": "(,10.0.32767]",
"System.Reflection.Primitives": "(,4.3.32767]",
"System.Reflection.TypeExtensions": "(,4.3.32767]",
"System.Resources.Reader": "(,4.3.32767]",
"System.Resources.ResourceManager": "(,4.3.32767]",
"System.Resources.Writer": "(,4.3.32767]",
"System.Runtime": "(,4.3.32767]",
"System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
"System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
"System.Runtime.Extensions": "(,4.3.32767]",
"System.Runtime.Handles": "(,4.3.32767]",
"System.Runtime.InteropServices": "(,4.3.32767]",
"System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
"System.Runtime.Loader": "(,4.3.32767]",
"System.Runtime.Numerics": "(,4.3.32767]",
"System.Runtime.Serialization.Formatters": "(,4.3.32767]",
"System.Runtime.Serialization.Json": "(,4.3.32767]",
"System.Runtime.Serialization.Primitives": "(,4.3.32767]",
"System.Runtime.Serialization.Xml": "(,4.3.32767]",
"System.Security.AccessControl": "(,6.0.32767]",
"System.Security.Claims": "(,4.3.32767]",
"System.Security.Cryptography.Algorithms": "(,4.3.32767]",
"System.Security.Cryptography.Cng": "(,5.0.32767]",
"System.Security.Cryptography.Csp": "(,4.3.32767]",
"System.Security.Cryptography.Encoding": "(,4.3.32767]",
"System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
"System.Security.Cryptography.Primitives": "(,4.3.32767]",
"System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
"System.Security.Principal": "(,4.3.32767]",
"System.Security.Principal.Windows": "(,5.0.32767]",
"System.Security.SecureString": "(,4.3.32767]",
"System.Text.Encoding": "(,4.3.32767]",
"System.Text.Encoding.CodePages": "(,10.0.32767]",
"System.Text.Encoding.Extensions": "(,4.3.32767]",
"System.Text.Encodings.Web": "(,10.0.32767]",
"System.Text.Json": "(,10.0.32767]",
"System.Text.RegularExpressions": "(,4.3.32767]",
"System.Threading": "(,4.3.32767]",
"System.Threading.AccessControl": "(,10.0.32767]",
"System.Threading.Channels": "(,10.0.32767]",
"System.Threading.Overlapped": "(,4.3.32767]",
"System.Threading.Tasks": "(,4.3.32767]",
"System.Threading.Tasks.Dataflow": "(,10.0.32767]",
"System.Threading.Tasks.Extensions": "(,5.0.32767]",
"System.Threading.Tasks.Parallel": "(,4.3.32767]",
"System.Threading.Thread": "(,4.3.32767]",
"System.Threading.ThreadPool": "(,4.3.32767]",
"System.Threading.Timer": "(,4.3.32767]",
"System.ValueTuple": "(,4.5.32767]",
"System.Xml.ReaderWriter": "(,4.3.32767]",
"System.Xml.XDocument": "(,4.3.32767]",
"System.Xml.XmlDocument": "(,4.3.32767]",
"System.Xml.XmlSerializer": "(,4.3.32767]",
"System.Xml.XPath": "(,4.3.32767]",
"System.Xml.XPath.XDocument": "(,5.0.32767]"
}
}
}
}
}
@@ -1,8 +0,0 @@
{
"version": 2,
"dgSpecHash": "hk00k31OFTw=",
"success": true,
"projectFilePath": "C:\\Users\\Shaamil\\Desktop\\LibraryApp\\LibraryApp.Domain\\LibraryApp.Domain.csproj",
"expectedPackageFiles": [],
"logs": []
}
+24
View File
@@ -0,0 +1,24 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.2.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryApp.Domain", "LibraryApp.Domain\LibraryApp.Domain.csproj", "{F0C43C75-AA81-2DB3-B2EA-F3300E847250}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F0C43C75-AA81-2DB3-B2EA-F3300E847250}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F0C43C75-AA81-2DB3-B2EA-F3300E847250}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F0C43C75-AA81-2DB3-B2EA-F3300E847250}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F0C43C75-AA81-2DB3-B2EA-F3300E847250}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6670D54A-442B-4E1E-B786-7452754DD7EA}
EndGlobalSection
EndGlobal