示例#1
0
        public Uri SubmitData(Submission newsubmission)
        {
            int id = newsubmission.ID;
            int projectid = newsubmission.ProjectID;
            int userid = newsubmission.UserID;
            String data = newsubmission.Data;
            String location = newsubmission.Location;
            byte[] imagedata = newsubmission.ImageData;
            byte[] lowresimagedata = newsubmission.LowResImageData;
            DateTime time = newsubmission.Time;
            String imagename = newsubmission.ImageName;
            //String lowresimagename = newsubmission.LowResImageName;

            EnsureContainerExists();
            EnsureLowResImagesContainerExists();
            //DateTime time = DateTime.Now;
            //String imagename = userid.ToString() + "-" + time.ToFileTime().ToString() + ".jpg";
            var blob = this.GetContainer().GetBlobReference(imagename);
            blob.Properties.ContentType = "JPEG";
            var lowresblob = this.GetLowResImagesContainer().GetBlobReference(imagename);
            lowresblob.Properties.ContentType = "JPEG";

            var metadata = new NameValueCollection();
            metadata["SubmissionID"] = id.ToString();
            metadata["ProjectID"] = projectid.ToString();
            metadata["UserID"] = userid.ToString();
            metadata["Time"] = DateTime.Now.ToString();

            blob.Metadata.Add(metadata);
            blob.UploadByteArray(imagedata);
            lowresblob.Metadata.Add(metadata);
            lowresblob.UploadByteArray(lowresimagedata);

            int point = 1;//for each submission increase user score by 1
            using (var db = new MyScienceEntities())
            {
                datum submission = datum.Createdatum(id, projectid, userid, data, time, location, blob.Uri.ToString(), lowresblob.Uri.ToString());
                db.data.AddObject(submission);
                user curUser = (from auser in db.users
                                where auser.ID == userid
                                select auser).First();
                curUser.score = curUser.score + point;
                int changes = db.SaveChanges();
                //return changes;
            }
            return blob.Uri;
        }
示例#2
0
        public User RegisterUserWithImage(int id, String phoneid, String name, String contentType, byte[] imagedata)
        {
            /* Handle new user creation */
            //check to see if the user is in the database
            MyScienceEntities db = new MyScienceEntities();
            var query = (from userobj in db.users
                         where userobj.name.ToLower() == name.ToLower()// && userobj.phoneid == phoneid
                         select new User
                         {
                             ID = userobj.ID,
                             Name = userobj.name,
                             Score = (int)userobj.score
                         });
            if (query.Count<User>() != 0)
                return null; //username already taken

            int idx = db.users.Count<user>() + 1;
            user userinfo = user.Createuser(idx, phoneid, name);
            userinfo.score = 0;
            //userinfo.hasImage = 1; //has user profile pic
            db.users.AddObject(userinfo);
            int changes = db.SaveChanges();
            User result = new User
            {
                ID = userinfo.ID,
                Name = userinfo.name,
                Score = (int)userinfo.score,
                PhoneID = userinfo.phoneid,
                hasImage = 1
            };

            /* Handle image submission */
            EnsureUserImagesContainerExists();
            String imagename = name + ".jpg";
            var blob = this.GetUserImagesContainer().GetBlobReference(imagename);
            blob.Properties.ContentType = contentType;

            var metadata = new NameValueCollection();
            //metadata["PhoneID"] = phoneid.ToString();
            //metadata["UserID"] = idx.ToString();
            metadata["Time"] = DateTime.Now.ToString();

            blob.Metadata.Add(metadata);
            blob.UploadByteArray(imagedata);

            return result;
        }
示例#3
0
        public User RegisterUser(int id, String phoneid, String name)
        {
            //check to see if the user is in the database
            MyScienceEntities db = new MyScienceEntities();
            var query = (from userobj in db.users
                         where userobj.name.ToLower() == name.ToLower()// && userobj.phoneid == phoneid
                         select new User
                         {
                             ID = userobj.ID,
                             Name = userobj.name,
                             Score = (int)userobj.score
                         });
            if (query.Count<User>() != 0)
                return null; //username already taken

            int idx = db.users.Count<user>() + 1;
            user userinfo = user.Createuser(idx, phoneid, name);
            userinfo.score = 0;
            //userinfo.hasImage = 0; //without user profile pic
            db.users.AddObject(userinfo);
            int changes = db.SaveChanges();
            User result = new User
            {
                ID = userinfo.ID,
                Name = userinfo.name,
                Score = (int)userinfo.score,
                PhoneID = userinfo.phoneid,
                hasImage = 0
            };
            return result;
        }