This project is read-only.
2

Closed

Бъгове в Проект 3: Социален фотоалбум

description

1) При позване на сървиса за смяна на парола не хвърля грешка при грешна стара парола. Трябва да се напише това:
var user = Membership.GetUser();
if (!user.ChangePassword(oldPassword, newPassword))
{
throw new Exception("Old Password mismatch");
}
 
2) В MemberService липсва SendFriendRequest. Трябва да си добавите това в сървиса:
[WebMethod]
 
[RequiresAuthentication]
 
public void SendFriendRequest([Required] string username)
{
var usernameLowcase = username.ToLowerInvariant();
var targetUser = this.ObjectContext.PhotoAlbumUsers.FirstOrDefault(u => u.UserName.ToLower() == usernameLowcase);
if (targetUser == null)
{
throw new Exception("Traget user not found.");
}
var request = new FriendRequest()
{
DateCreated = DateTime.UtcNow,
InitiatorId = this.PhotoUser.Id,
TargetId = targetUser.Id,
};
ObjectContext.AddToFriendRequests(request);
ObjectContext.SaveChanges();
}
 
3) при GetFriendsRequests не се сериализира Initiator-a. За да се сериализра определено поле понякога трябва изрично да се укаже, новия код за метода:
return this.PhotoUser
.FriendRequests
.CreateSourceQuery()
.Include("Initiator")
.OrderByDescending(fr => fr.DateCreated);
 
4)за AcceptFriendRequestId и RejectFriendRequestId:
В услугите се използва грешен метод за премахвене на обекта. Ако се махне закоментирането и се изпоилзва DeleteObject() са ок:
//PhotoUser.FriendRequests.Remove(request);
ObjectContext.FriendRequests.DeleteObject(request);
Освен това в Accept() метода трябва да се добави и това:
initiator.Friends.Add(PhotoUser);
Защото иначе връзката става само еднопосочна.
 
Мисля, че тук вече са качени фикснатите сървиси: http://fmisilverlight.codeplex.com/SourceControl/changeset/changes/55585
Closed Jun 29, 2010 at 3:20 PM by kowd
Добри забележки! Вече са орпавени. 10 БОНУС точки

comments