Ejemplo n.º 1
0
        public void AddStatus(User user, Group group, Event ev, StatusFormModel formModel)
        {
            if (group != null)
            {
                if (!group.HasMember(user))
                {
                    throw new StatusException("User is not member of group");
                }
            }

            var status = new Status {
                Text = formModel.Status, User = user, Group = group, Event = ev
            };

            db.AddToStatusSet(status);

            // obrázky
            if (formModel.Images != null)
            {
                for (int i = 0; i < formModel.Images.Count; i++)
                {
                    var uploadedImage = formModel.Images[i];

                    // vynechat neobrázky
                    if (uploadedImage == null || uploadedImage.ContentLength == 0 || !ImageHelper.IsImage(uploadedImage.ContentType))
                    {
                        continue;
                    }

                    // vyrobit entitu
                    var img = new Image {
                        Description = formModel.ImageDescriptions[i],
                    };
                    db.ImageSet.AddObject(img);

                    status.Images.Add(img);

                    // uložit db, aby entita měla id a tudíž se dala vymyslet cesta k obrázku
                    db.SaveChanges();

                    // uložit soubor
                    imageService.SaveImage(img, uploadedImage.InputStream);
                }
            }

            // soubory
            if (formModel.Files != null)
            {
                for (int i = 0; i < formModel.Files.Count; i++)
                {
                    var uploadedFile = formModel.Files[i];

                    if (uploadedFile == null || uploadedFile.ContentLength == 0)
                    {
                        continue;
                    }

                    // vyrobit entitu
                    var file = new File {
                        Description = formModel.FileDescriptions[i],
                        FileName    = uploadedFile.FileName,
                    };
                    db.FileSet.AddObject(file);

                    status.Files.Add(file);

                    // uložit db, aby entita měla id a tudíž se dala vymyslet cesta k souboru
                    db.SaveChanges();

                    // uložit soubor
                    fileService.SaveFile(file, uploadedFile);
                }
            }

            // odkazy
            if (formModel.Links != null)
            {
                for (int i = 0; i < formModel.Links.Count; i++)
                {
                    var url = formModel.Links[i];

                    if (String.IsNullOrWhiteSpace(url))
                    {
                        continue;
                    }

                    status.Links.Add(new Link {
                        URL         = url,
                        Description = formModel.LinkDescriptions[i],
                    });
                }
            }

            db.SaveChanges();

            // přidat do zdí
            List <User> userList = user.Followers.ToList();

            if (group != null)
            {
                userList.Union(group.Users);
            }
            else
            {
                userList.Add(user);
            }

            wallService.Add(status, userList.Distinct());
        }
Ejemplo n.º 2
0
        public ActionResult CreateAccount(UserViewModel userViewModel, HttpPostedFileBase file)
        {
            if (!ModelState.IsValid)
            {
                return(View("Index", userViewModel));
            }


            var model = userService.GetBy(x => x.Username == userViewModel.Username);

            if (model != null)
            {
                ModelState.AddModelError("", "Username" + userViewModel.Username + "taken");
                userViewModel.Username = "";

                return(View("Index", userViewModel));
            }


            Users u = new Users
            {
                Username  = userViewModel.Username,
                Name      = userViewModel.Firstname,
                LastName  = userViewModel.LastName,
                Password  = userViewModel.Password,
                Email     = userViewModel.Email,
                IsDeleted = false
            };


            userService.Add(u);

            int userId = u.Id;


            SessionSet <Users> .SetSession(u, "login");


            var uploadsDir = new DirectoryInfo(string.Format("{0}Uploads", Server.MapPath(@"\"))); //Uploda Dosyasını bulabilmekl için assembly içinde Pathi verdik Yani: C/user/repos/Facebook.WebUI/Uploads....


            if (file != null && file.ContentLength > 0)
            {
                string ext = file.ContentType.ToLower(); //Content type ı yani image.jpg veya image.png gibi yakaladık ve küçük harfe çevirdik.Aşağıda kontrol edebilmek için



                if (ext != "image/jpg" && ext != "image/jpeg" && ext != "image/pjeg" && ext != "image/gif" && ext != "image/x-png" && ext != "image/png")
                {
                    ModelState.AddModelError("", "The image was not uploaded - wrong image extension.");
                    userViewModel.Username = "";

                    return(View("Index", userViewModel));
                }

                string imagename = userId + ".jpg"; //Fotografin adını id le bağladık 3.jpg 2.jpg


                var path = string.Format("{0}\\{1}", uploadsDir, imagename); //Dosya pathını ve fotograf adını birleştirip bir butun path haline getirdik

                file.SaveAs(path);                                           //Uplodas dosyasın kayıt etttik


                Wall wall = new Wall();


                wall.UserId     = userId;
                wall.Message    = "";
                wall.DateEdited = DateTime.Now;

                wallservice.Add(wall);
            }

            return(Redirect("~/" + userViewModel.Username)); //Yönlendirdik
        }