public static LongLLMemberUserDTO FromData(LocalLibraryMember member) { return(new LongLLMemberUserDTO() { MemberId = member.Id, LibraryName = member.LocalLibrary.Name, LibraryId = member.LocalLibrary.Id, MembershipExpiryDate = member.MembershipExpiryDate, NumberOfBorrowedBooks = member.BatchesOfBorrowedBooks.Count, /*SelectMany(batch => batch.Books).ToList().Count,*/ NumberOfReservedBooks = member.Reservations.Count, LastBorrowDate = member.BatchesOfBorrowedBooks.OrderBy(book => book.PickupDate).LastOrDefault()?.PickupDate, LibraryOpenHours = member.LocalLibrary.OpenHours, LibraryAddress = member.LocalLibrary.Address, LibraryEmail = member.LocalLibrary.Email, LibraryNumber = member.LocalLibrary.Number, BorrowedBooks = member .BatchesOfBorrowedBooks .Select(batchOfBorrowedBooks => batchOfBorrowedBooks.Books.Select(book => ShortBookDTO.FromData(book, batchOfBorrowedBooks.ReturnDeadline))) .SelectMany(book => book) .ToList(), Reservations = member.Reservations //.BatchesOfReservedBooks //.Select(batchOfReservedBooks => batchOfReservedBooks.Books.Select(book => ShortBookDTO.FromData(book, batchOfReservedBooks.PickupDeadline))) //.SelectMany(book => book) //.ToList() }); }
public static ShortLLMemberUserDTO FromData(LocalLibraryMember member) { return(new ShortLLMemberUserDTO { LibraryName = member.LocalLibrary.Name, LibraryId = member.LocalLibrary.Id, MemberName = member.Name, MemberLastName = member.LastName, MemberAddress = member.Address, MemberEmail = member.Email, MemberOib = member.Oib, MembershipExpiryDate = member.MembershipExpiryDate, NumberOfBorrowedBooks = member.BatchesOfBorrowedBooks.Count, NumberOfReservedBooks = member.Reservations.Count, LastBorrowDate = member.BatchesOfBorrowedBooks.OrderBy(book => book.PickupDate).LastOrDefault()?.PickupDate, BarcodeNumber = member.BarcodeNumber }); }
public void AddNewLibraryMember(NameValueCollection memberData, string blobUrl, Guid?userId) { using (var context = new AuthContext()) { var library = context.LocalLibraries .FirstOrDefault(localLibrary => localLibrary.Administrators.Select(admin => admin.Id).ToList().Contains(userId.ToString())); var barcodeNumber = long.Parse(context.LocalLibraryMembers //.Where(book => book.LocalLibrary.Id == library.Id) .OrderBy(member => member.BarcodeNumber) .ToList() .LastOrDefault() .BarcodeNumber) + 1; var name = memberData["name"]; var lastname = memberData["lastname"]; var oib = memberData["oib"]; var email = memberData["email"]; var address = memberData["address"]; var city = memberData["city"]; var phoneNumber = memberData["phoneNumber"]; var memberToAdd = new LocalLibraryMember() { Name = name, LastName = lastname, Oib = oib, Email = email, Address = address + ", " + city, PhoneNumber = phoneNumber, BarcodeNumber = barcodeNumber.ToString(), ImageUrl = blobUrl, LocalLibrary = library, MembershipExpiryDate = DateTime.Now.AddYears(1), IsVerifiedLocal = true }; context.LocalLibraryMembers.Add(memberToAdd); context.SaveChanges(); } }
public static LocalLibraryMemberDTO FromData(LocalLibraryMember member) { var borrowedBooks = member.BatchesOfBorrowedBooks .Where(batch => batch.ReturnDeadline > DateTime.Now) .Select(batchOfBorrowedBooks => batchOfBorrowedBooks.Books.Select(book => ShortBookDTO.FromData(book, batchOfBorrowedBooks.ReturnDeadline))) .SelectMany(book => book) .ToList(); var lateBooks = member.BatchesOfBorrowedBooks .Where(batch => batch.ReturnDeadline < DateTime.Now) .Select(batchOfBorrowedBooks => batchOfBorrowedBooks.Books.Select(book => ShortBookDTO.FromData(book, batchOfBorrowedBooks.ReturnDeadline))) .SelectMany(book => book) .ToList(); return(new LocalLibraryMemberDTO() { Name = member.Name, LastName = member.LastName, PhoneNumber = member.PhoneNumber, Email = member.Email, IsVerifiedLocal = member.IsVerifiedLocal, IsGuest = member.IsGuest, Oib = member.Oib, Address = member.Address, BarcodeNumber = member.BarcodeNumber, MembershipExpiryDate = member.MembershipExpiryDate, BorrowedBooks = borrowedBooks, LateBooks = lateBooks, Reservations = member.Reservations, TotalLateReturnFee = borrowedBooks.Count == 0 ? 0 : borrowedBooks.Select(book => book.LateReturnFee).Aggregate((sum, ele) => sum += ele) }); }