Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 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();
                }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 9
0
        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);
        }