Ejemplo n.º 1
0
 public ActionResult Edit(CaseItem caseitem)
 {
     if (ModelState.IsValid)
     {
         caseitemRepository.InsertOrUpdate(caseitem);
         caseitemRepository.Save();
         return RedirectToAction("Index");
     }
     else
     {
         //return View();
         return View(caseitem);
     }
 }
Ejemplo n.º 2
0
        /* Returnerar en "one time code" för givet CaseItem
         */
        private string GenerateResponseCode(CaseItem caseitem)
        {
            //Koden som genereras är baserad på aktuellt CaseItems ID och titel:
            string stringToCode = caseitem.ID.ToString() + caseitem.Title;
            MD5CryptoServiceProvider md5CSP = new MD5CryptoServiceProvider();

            //Skapar en array av bytes som motsvarar strängen som ska kodas
            byte[] bArr = Encoding.ASCII.GetBytes(stringToCode);
            //Krypterar med en md5 hash
            bArr = md5CSP.ComputeHash(bArr);

            //Konverterar till string, tar bort bindestreck och returnerar den färdiga koden
            return BitConverter.ToString(bArr).Replace("-", "");
        }
Ejemplo n.º 3
0
        public ActionResult Create(CaseItem caseitem, HttpPostedFileBase image, HttpPostedFileBase document)
        {
            if (Session["uid"] != null)
            {
                long userId = Convert.ToInt64(Session["uid"].ToString());
                caseitem.Owner = userId;

                RecieverResponse resp = new RecieverResponse();
                resp.ResponseCode = GenerateResponseCode(caseitem);
                recieverresponseRepository.InsertOrUpdate(resp);
                recieverresponseRepository.Save();

                caseitem.caseMode = 0;
                caseitem.Created = DateTime.Now;
                caseitem.LastEdited = DateTime.Now;
                caseitem.ResponseID = resp.ResponseID;
                caseitem.Archived = false;

                if (ModelState.IsValid)
                {
                    caseitemRepository.InsertOrUpdate(caseitem);
                    caseitemRepository.Save();

                    //validering och sparning av bild
                    if (image != null)
                    {
                        switch (image.ContentType)
                        {
                            //tillåtna filtyper:
                            case "image/jpeg":
                            case "image/png":
                            case "image/gif":
                                CaseImage img = new CaseImage();
                                img.CaseID = caseitem.ID;

                                //Genererar strängar som ska läggas till på bildens namn för att göra namnet unikt:
                                string imgGUID = Guid.NewGuid().ToString();

                                //sparar originalbilden i /Content/uploadedImages/:
                                string imgLocation = "~/Content/uploadedImages/" + imgGUID + "_" + image.FileName;
                                img.ImageUrl = imgLocation;
                                image.SaveAs(Server.MapPath(imgLocation));

                                //Skapar en ny resizead bild som ska användas som thumbnail
                                Image srcImage = Image.FromStream(image.InputStream);
                                Image thumbnail = new Bitmap(srcImage, 130, 130);
                                srcImage.Dispose();

                                //Sparar thumbnailen i /Content/uploadedThumbnails/:
                                string thumbnailLocation = "~/Content/uploadedThumbnails/" + imgGUID + "_" + image.FileName;
                                caseitem.ImageThumbnail = thumbnailLocation;
                                thumbnail.Save(Server.MapPath(thumbnailLocation));
                                thumbnail.Dispose();
                                //image.InputStream.Read(img.ImageBytes, 0, image.ContentLength);

                                caseimageRepository.InsertOrUpdate(img);
                                caseimageRepository.Save();

                                break;
                            default: //Otillåten filtyp
                                caseitem.ImageThumbnail = null;
                                /* Lägg till validerings-errormeddelande i vy:
                                 * ModelState.AddModelError("key", "message");
                                 * i view: @Html.ValidationSummary(false)
                                 */
                                break;
                        }

                    }
                    else
                    {
                        caseitem.ImageThumbnail = null;
                    }
                    //s**t på validering och sparning bild

                    //dokumentuppladdning:
                    if (document != null)
                    {
                        caseitem.documentMimeType = document.ContentType;
                        caseitem.documentName = document.FileName;
                        string location =   "~/Content/uploadedDocuments/" + document.FileName;
                        caseitem.documentUrl = location;
                        document.SaveAs(Server.MapPath(location));
                    }

                    resp.ResponseCode = GenerateResponseCode(caseitem);
                    recieverresponseRepository.InsertOrUpdate(resp);
                    recieverresponseRepository.Save();

                    var createVoting = Request["create_voting"];

                    //have the user requested a voting on this case?
                    if (createVoting=="true" && Request["voting_title"] != null)
                    {
                        CaseVoting casevoting = new CaseVoting();
                        casevoting.CaseID = caseitem.ID;
                        casevoting.Title = Request["voting_title"];
                        casevoting.StartDate = DateTime.Now;
                        casevoting.EndDate = DateTime.Now;
                        casevoting.Created = DateTime.Now;
                        caseVotingRepository.InsertOrUpdate(casevoting);
                        caseVotingRepository.Save();
                    }

                }
                else
                {
                    ViewBag.PossibleCategories = casecategoryRepository.All;

                }

                caseitem.caseComment = new List<CaseComment>();
                if (ModelState.IsValid)
                {
                    caseitemRepository.InsertOrUpdate(caseitem);
                    caseitemRepository.Save();
                    return RedirectToAction("Index");
                }
                else
                {
                    return View();
                }
            }
            else
            {
                return RedirectToAction("Index");
            }
        }