public MyStatusCode RegisterAccount(string username, string password, string gender) { MyStatusCode state = MyStatusCode.Invalid; if (!AccountUtil.CheckAccountInfo(username, password) || !(gender.Equals("M") || gender.Equals("F"))) { return(state); } if (loverDao.GetPw(username) != null) { logger.Debug("existing name :" + username); state = MyStatusCode.Existing; } else { DogLover lover = new DogLover() { name = username, password = password, gender = gender, figure = DefaultUtil.DefaultLoverFigure, loves = 0, loveDogs = 0, adoptDogs = 0 }; loverDao.Add(lover); state = MyStatusCode.Validated; } return(state); }
public MyStatusCode UnfollowDog(long idLover, long idDog) { MyStatusCode state = MyStatusCode.Validated; DogLover lover = loverDao.Get(idLover); Dog dog = dogDao.Get(idDog); if (lover == null || dog == null) { state = MyStatusCode.Invalid; } else { using (var dbTransaction = dogDao.db.Database.BeginTransaction()) { try { if (followDao.Delete(idDog, idLover) != null) { loverDao.UpdateFollow(lover, -1); dbTransaction.Commit(); } else { state = MyStatusCode.Invalid; } } catch (Exception) { dbTransaction.Rollback(); state = MyStatusCode.InternalServerError; } } } return(state); }
public bool Update(DogLover lover) { if (loverDao.GetId(lover.name) != 0) { return(false); } return(loverDao.Update(lover)); }
public void MainTest() { using (var session = Domain.OpenSession()) using (var t = session.OpenTransaction()) { Animal animal = new Animal(); animal.Name = "Elephant"; Dog dog = new Dog(); dog.Name = "Rex"; Cat cat = new Cat(); cat.Name = "Pussycat"; var catLover = new CatLover { Name = "CatLover", Favorite = cat }; catLover.Pets.Add(cat); var dogLover = new DogLover { Name = "CatLover", Favorite = dog }; dogLover.Pets.Add(dog); var dogClinic = new DogClinic { Name = "Dog healer.", Address = "Address 1" }; var catClinic = new CatClinic { Name = "Cat healer.", Address = "Address 2" }; t.Complete(); } using (var session = Domain.OpenSession()) using (var t = session.OpenTransaction()) { var animals = session.Query.All <Animal>().ToList(); var dogs = session.Query.All <Dog>().ToList(); var cats = session.Query.All <Cat>().ToList(); var persons = session.Query.All <Person>().ToList(); var dogLovers = session.Query.All <DogLover>().ToList(); var catLovers = session.Query.All <CatLover>().ToList(); var clinics = session.Query.All <VetClinic>().ToList(); var dogClinics = session.Query.All <DogClinic>().ToList(); var catClinics = session.Query.All <CatClinic>().ToList(); Assert.AreEqual(3, animals.Count); Assert.AreEqual(1, dogs.Count); Assert.AreEqual(1, cats.Count); Assert.AreEqual(2, persons.Count); Assert.AreEqual(1, dogLovers.Count); Assert.AreEqual(1, catLovers.Count); Assert.AreEqual(2, clinics.Count); Assert.AreEqual(1, dogClinics.Count); Assert.AreEqual(1, catClinics.Count); t.Complete(); } }
public DogLover ProcessUpload(MultipartFormDataStreamProvider provider) { string filename = provider.FileData[0].Headers.ContentDisposition.FileName; filename = HttpUtility.HtmlDecode(filename.Trim(new char[] { '\\', '"' })); string filepath = provider.FileData[0].LocalFileName; QiniuService qiniuService = new QiniuService(); string figure = qiniuService.UploadFile(filepath, filename); DogLover lover = new DogLover() { name = HttpUtility.HtmlDecode(provider.FormData.Get(0)), gender = provider.FormData.Get(1), tel = provider.FormData.Get(2), email = provider.FormData.Get(3) }; lover.figure = figure; return(lover); }
public static Dictionary <string, object> ConvertDogLover(DogLover lover) { Dictionary <string, object> dict = new Dictionary <string, object>(); if (lover == null) { return(dict); } dict.Add("idUser", lover.idUser); dict.Add("name", lover.name); dict.Add("gender", lover.gender); dict.Add("tel", lover.tel); dict.Add("email", lover.email); dict.Add("figure", lover.figure); dict.Add("loves", lover.loves); dict.Add("loveDogs", lover.loveDogs); dict.Add("adoptDogs", lover.adoptDogs); return(dict); }
public MyStatusCode FollowDog(long idLover, long idDog) { MyStatusCode state = MyStatusCode.Validated; DogLover lover = loverDao.Get(idLover); Dog dog = dogDao.Get(idDog); if (lover == null || dog == null) { state = MyStatusCode.Invalid; } else if (lover.loveDogs >= DefaultUtil.DefaultFollowMaximum) { state = MyStatusCode.Limited; } else { using (var dbTransaction = dogDao.db.Database.BeginTransaction()) { try { Follow follow = new Follow() { dog_ = idDog, lover_ = idLover, followTime = DateTime.Now }; followDao.Add(follow); loverDao.UpdateFollow(lover, 1); dbTransaction.Commit(); } catch (Exception) { dbTransaction.Rollback(); state = MyStatusCode.InternalServerError; } } } return(state); }
public async System.Threading.Tasks.Task <HttpResponseMessage> SeeOwnInfo() { HttpResponseMessage message = new HttpResponseMessage(); long userId = SupportFilter.GetUserIdFromCookie(); if (!Request.Content.IsMimeMultipartContent()) { message.StatusCode = HttpStatusCode.BadRequest; return(message); } string root = HttpContext.Current.Server.MapPath("~/App_Data"); var provider = new MultipartFormDataStreamProvider(root); try { await Request.Content.ReadAsMultipartAsync(provider); DogLover lover = loverService.ProcessUpload(provider); lover.idUser = userId; if (lover.figure != null) { message.StatusCode = loverService.Update(lover) ? HttpStatusCode.OK : (HttpStatusCode)MyStatusCode.Invalid; } else { message.StatusCode = HttpStatusCode.InternalServerError; } } catch (Exception e) { message.StatusCode = HttpStatusCode.InternalServerError; return(message); } return(message); }
public MyStatusCode AdoptDog(long idLover, long idDog) { MyStatusCode state = MyStatusCode.Validated; DogLover lover = loverDao.Get(idLover); Dog dog = dogDao.Get(idDog); if (dog == null || lover == null || dog.adopter != 0) { state = MyStatusCode.Invalid; } else if (lover.adoptDogs >= DefaultUtil.DefaultAdoptionMaximum) { state = MyStatusCode.Limited; } else if (lover.loves < dog.loves) { state = MyStatusCode.CannotAfford; } else { using (var dbTransaction = dogDao.db.Database.BeginTransaction()) { try { dogDao.BeAdopted(dog, lover.idUser); loverDao.AdoptDog(lover, dog.loves); dbTransaction.Commit(); } catch (Exception) { dbTransaction.Rollback(); state = MyStatusCode.InternalServerError; } } } return(state); }