Exemplo n.º 1
0
        protected override RuleOutcome EvaluateRule(VoatRuleContext context)
        {
            UserSubmission submission = context.PropertyBag.UserSubmission;

            switch (submission.Type)
            {
            case SubmissionType.Link:
                Data.Models.Submission recentlySubmitted = null;
                using (var repo = new Repository())
                {
                    recentlySubmitted = repo.FindSubverseLinkSubmission(context.Subverse.Name, submission.Url, TimeSpan.FromDays(15));
                }
                if (recentlySubmitted != null)
                {
                    string url = VoatUrlFormatter.BuildUrlPath(null, new Common.PathOptions()
                    {
                        FullyQualified = true, ProvideProtocol = true
                    }, $"v/{recentlySubmitted.Subverse}/{recentlySubmitted.ID}");

                    return(CreateOutcome(RuleResult.Denied, $"Sorry, this link has already been submitted recently. {url}"));
                }
                break;

            case SubmissionType.Text:

                //containsBannedDomain = BanningUtility.ContentContainsBannedDomain(context.Subverse.Name, submission.Content);
                break;
            }

            return(Allowed);
        }
Exemplo n.º 2
0
        public void TestCommandActivitySerialization()
        {
            var settings = JsonSettings.DataSerializationSettings;
            var user     = TestHelper.SetPrincipal("Frank", "admin", "user");

            var userSubmission = new UserSubmission()
            {
                Content = "This is content", Title = "This is title", Url = "http://thisisurl.com", Subverse = "ThisIsSubverse"
            };
            var command  = new CreateSubmissionCommand(userSubmission).SetUserContext(user);
            var activity = (ActivityContext)command.Context;

            var json = JsonConvert.SerializeObject(command, settings);

            var newCommand        = JsonConvert.DeserializeObject <CreateSubmissionCommand>(json, settings);
            var newUserSubmission = newCommand.UserSubmission;
            var newActivity       = (ActivityContext)newCommand.Context;


            Assert.AreEqual(userSubmission.Content, newUserSubmission.Content);
            Assert.AreEqual(userSubmission.Title, newUserSubmission.Title);
            Assert.AreEqual(userSubmission.Url, newUserSubmission.Url);
            Assert.AreEqual(userSubmission.Subverse, newUserSubmission.Subverse);

            Assert.AreEqual(activity.ActivityID, newActivity.ActivityID);
            Assert.AreEqual(activity.StartDate, newActivity.StartDate);
            Assert.AreEqual(activity.EndDate, newActivity.EndDate);

            Assert.AreEqual(activity.User.Identity.Name, newActivity.User.Identity.Name);
            //We want to ensure deserialization does not retain these VoatSettings.Instance.
            Assert.AreEqual(false, newActivity.User.Identity.IsAuthenticated);
            Assert.AreEqual("", newActivity.User.Identity.AuthenticationType);
        }
Exemplo n.º 3
0
        public SubmissionResponse SaveNewSubmission(BaseSubmission submission, string result)
        {
            var response = new SubmissionResponse();

            if (!DoesUserTaskSubmissionExist(submission.TaskId, submission.Nickname))
            {
                var newSubmission = new UserSubmission()
                {
                    Code               = submission.Solution,
                    IsCorrect          = DoesTaskHaveCorrectResult(submission.TaskId, result),
                    IsDeleted          = false,
                    Nickname           = submission.Nickname,
                    Result             = result,
                    SubmissionDateTime = DateTime.UtcNow,
                    TaskId             = submission.TaskId
                };

                _programmingCompetitionDataContext.UserSubmission.Add(newSubmission);
                _programmingCompetitionDataContext.SaveChanges();

                response.IsCorrectResult      = newSubmission.IsCorrect;
                response.IsSubmissionAccepted = true;
                response.Response             = newSubmission.Result;
            }
            else
            {
                response.IsSubmissionAccepted = false;
                response.Response             = "There is already a submission for this task with current user nickname!";
            }

            return(response);
        }
Exemplo n.º 4
0
 private void SetAspectValues()
 {
     subtimeSUB.AspectGetter = delegate(object row)
     {
         return(UnixTimestamp.FormatUnixTime(((UserSubmission)row).sbt));
     };
     lanSUB.AspectToStringConverter = delegate(object dat)
     {
         return(Functions.GetLanguage((Language)(long)dat));
     };
     verSUB.AspectToStringConverter = delegate(object dat)
     {
         return(Functions.GetVerdict((Verdict)(long)dat));
     };
     runSUB.AspectToStringConverter = delegate(object dat)
     {
         return(Functions.FormatRuntime((long)dat));
     };
     rankSUB.AspectToStringConverter = delegate(object dat)
     {
         if ((long)dat == -1)
         {
             return("-");
         }
         return(((long)dat).ToString());
     };
     pnumSUB.GroupKeyGetter = delegate(object row)
     {
         UserSubmission usub = (UserSubmission)row;
         return(string.Format("{0} - {1}", usub.pnum, usub.ptitle));
     };
 }
Exemplo n.º 5
0
        public static void Initialize(ForumContext context)
        {
            context.Database.EnsureCreated();

            if (context.Topics.Any())
            {
                return;
            }

            var mainBoard = new Topic
            {
                Name          = "Index",
                AllowsThreads = false,
                Description   = "This is the root board"
            };

            var master = new UserSubmission {
                Username     = "******",
                Email        = "*****@*****.**",
                HasSignature = false,
                Password     = "******"
            };

            context.AddTopic(mainBoard);
            // This password only exists momentarily when the system is being created.
            context.AddUser(master);
            master.Status = UserStatus.Administrator;

            context.SaveChanges();
        }
Exemplo n.º 6
0
        public IActionResult NewUser([FromBody] UserSubmission user)
        {
            if (user == null)
            {
                return(BadRequest(Errors.MissingFields));
            }

            if (!DataHandler.IsValidEmail(user.Email))
            {
                return(BadRequest(Errors.InvalidEmail));
            }

            if (database.GetAllUsers().FirstOrDefault(u => u.Name == user.Username ||
                                                      u.Email == user.Email) != null)
            {
                return(BadRequest(Errors.AlreadyExists));
            }

            if (!DataHandler.VerifyPassword(user.Password))
            {
                return(BadRequest(Errors.WeakPassword));
            }

            database.AddUser(user);
            database.SaveChanges();
            user.Password = "";
            return(new ObjectResult(user));
        }
        public void RemoveFieldFile(long idSubmittedField, List <dtoSubmissionValueField> fields, DateTime clickDt)
        {
            UserSubmission submission = Service.GetUserSubmission(View.IdSubmission);

            if (submission == null)
            {
                View.GoToUrl(CallStandardAction.List, RootObject.ViewCalls(View.IdCall, CallForPaperType.RequestForMembership, CallStandardAction.List, View.IdCallCommunity, CallStatusForSubmitters.SubmissionClosed));
            }
            else if (submission.AllowEditSubmission(View.InitSubmissionTime, clickDt))
            {
                try
                {
                    Service.RemoveFieldFileValue(idSubmittedField);
                    View.SendUserAction(View.IdCallCommunity, View.IdCallModule, submission.Id, ModuleRequestForMembership.ActionType.VirtualDeleteSubmittedFile);
                }
                catch (Exception ex)
                {
                }
                this.SaveSubmission(fields, clickDt);
            }
            else
            {
                View.GoToUrl(RootObject.ViewSubmission(submission.Call.Type, submission.Call.Id, submission.Id, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity, 0));
            }
        }
        protected override RuleOutcome EvaluateRule(VoatRuleContext context)
        {
            UserSubmission submission = context.PropertyBag.UserSubmission;

            switch (submission.Type)
            {
            case SubmissionType.Link:
                Data.Models.Submission recentlySubmitted = null;
                using (var repo = new Repository())
                {
                    recentlySubmitted = repo.FindSubverseLinkSubmission(context.Subverse.Name, submission.Url, TimeSpan.FromDays(15));
                }
                if (recentlySubmitted != null)
                {
                    return(CreateOutcome(RuleResult.Denied, $"Sorry, this link has already been submitted recently. https://voat.co/v/{recentlySubmitted.Subverse}/{recentlySubmitted.ID}"));
                }
                break;

            case SubmissionType.Text:

                //containsBannedDomain = BanningUtility.ContentContainsBannedDomain(context.Subverse.Name, submission.Content);
                break;
            }

            return(Allowed);
        }
Exemplo n.º 9
0
        private UserSubmission SaveUserSubmission(List <dtoSubmissionValueField> fields)
        {
            long           idCall       = View.IdCall;
            long           idSubmission = this.View.IdSubmission;
            long           idRevision   = View.IdRevision;
            UserSubmission submission   = null;

            try
            {
                submission = Service.SaveSubmission(idSubmission, ref idRevision, idCall, View.IdSelectedSubmitterType, UserContext.CurrentUserID, fields);
            }
            catch (SubmissionNotFound ex)
            {
                View.LoadError(SubmissionErrorView.SubmissionDeleted, View.IdCallCommunity, idCall, CallStatusForSubmitters.SubmissionOpened);
            }
            catch (SubmissionNotSaved ex)
            {
                View.LoadError(SubmissionErrorView.SubmissionValueSaving, View.IdCallCommunity, idCall, CallStatusForSubmitters.SubmissionOpened);
            }
            catch (SubmissionNotCreated ex)
            {
                View.LoadError(SubmissionErrorView.SubmissionValueSaving, View.IdCallCommunity, idCall, CallStatusForSubmitters.SubmissionOpened);
            }
            catch (SubmissionCallUnavailable ex)
            {
                View.LoadError(SubmissionErrorView.UnavailableCall, View.IdCallCommunity, idCall, CallStatusForSubmitters.SubmissionOpened);
                View.AllowCompleteSubmission = false;
                View.AllowSave = false;
            }

            if (submission != null)
            {
                View.IdSubmission = submission.Id;
                View.IdRevision   = idRevision;
                try
                {
                    Revision revision = Service.GetRevision(idRevision);

                    Service.SaveSubmissionFiles(submission, revision, UserContext.CurrentUserID, View.GetRequiredSubmittedFiles(submission, ModuleCallForPaper.UniqueCode, View.IdCallModule, (int)ModuleCallForPaper.ActionType.DownloadSubmittedFile, (int)ModuleCallForPaper.ObjectType.UserSubmission), View.GetFileValues(submission, ModuleCallForPaper.UniqueCode, View.IdCallModule, (int)ModuleCallForPaper.ActionType.DownloadSubmittedFile, (int)ModuleCallForPaper.ObjectType.UserSubmission));
                }
                catch (SubmissionInternalFileNotLinked ex)
                {
                    // remove internal files !
                }
                if (idSubmission == 0)
                {
                    View.SendUserAction(View.IdCallCommunity, View.IdCallModule, submission.Id, ModuleCallForPaper.ActionType.AddSubmission);
                }
                else
                {
                    View.SendUserAction(View.IdCallCommunity, View.IdCallModule, submission.Id, ModuleCallForPaper.ActionType.EditSubmission);
                }
            }
            else
            {
                LoadSections(idCall, View.IdSelectedSubmitterType, idSubmission, idRevision);
            }
            return(submission);
        }
 public object Insert(UserSubmission item)
 {
     using (APCRSHREntities context = new APCRSHREntities())
     {
         context.UserSubmissions.Add(item);
         context.SaveChanges();
         return(item.SubmitID);
     }
 }
Exemplo n.º 11
0
        public Document SubmissionToFile(Boolean openCloseConnection, UserSubmission submission, String fileName, List <dtoCallSubmissionFile> requiredFiles, List <dtoCallSection <dtoSubmissionValueField> > sections, litePerson person)
        {
            dtoExportSubmission settings = new dtoExportSubmission()
            {
                Filename = fileName, PrintBy = person, RequiredFiles = requiredFiles, Sections = sections, Submission = submission
            };

            return(Submission(openCloseConnection, settings, null, null));
        }
Exemplo n.º 12
0
        public Document Submission(Boolean openCloseConnection, UserSubmission submission, String clientFilename, String fileName, List <dtoCallSubmissionFile> requiredFiles, List <dtoCallSection <dtoSubmissionValueField> > sections, litePerson person, System.Web.HttpResponse webResponse, System.Web.HttpCookie cookie)
        {
            dtoExportSubmission settings = new dtoExportSubmission()
            {
                ClientFilename = clientFilename, Filename = fileName, PrintBy = person, RequiredFiles = requiredFiles, Sections = sections, Submission = submission
            };

            return(Submission(openCloseConnection, settings, webResponse, cookie));
        }
Exemplo n.º 13
0
 private void ExportSubmission(Document doc, UserSubmission submission, List <dtoCallSubmissionFile> requiredFiles, List <dtoCallSection <dtoSubmissionValueField> > sections, litePerson person, Dictionary <SubmissionTranslations, string> translations)
 {
     doc.Add(WriteSubmissionHeader(submission, person, translations));
     // doc.Add(TextSeparator());
     //doc.Add(TextSeparator());
     doc.Add(GetPageTitle(translations[SubmissionTranslations.SubmissionInfo], GetFont(ItemType.Title)));
     doc.Add(WriteSubmissionInfo(submission, submission.Status, translations));
     doc.Add(GetWhiteParagraph(GetFont(ItemType.Paragraph)));
     ExportSubmission(doc, false, requiredFiles, sections, translations);
 }
Exemplo n.º 14
0
        private void lastSubmissions1_HyperlinkClicked(object sender, BrightIdeasSoftware.HyperlinkClickedEventArgs e)
        {
            if (e.Model == null)
            {
                return;
            }

            UserSubmission usub = (UserSubmission)e.Model;

            if (e.Column == pnumSUB || e.Column == ptitleSUB)
            {
                Interactivity.ShowProblem(usub.pnum);
            }
        }
Exemplo n.º 15
0
 private void AssignAspectFunctions()
 {
     subtimeSUB.AspectGetter = delegate(object row)
     {
         if (row == null)
         {
             return(null);
         }
         UserSubmission last = (UserSubmission)row;
         return(UnixTimestamp.FormatUnixTime(last.sbt));
     };
     lanSUB.AspectToStringConverter = delegate(object dat)
     {
         if (dat == null)
         {
             return("");
         }
         return(Functions.GetLanguage((Language)((long)dat)));
     };
     verSUB.AspectToStringConverter = delegate(object dat)
     {
         if (dat == null)
         {
             return("");
         }
         return(Functions.GetVerdict((Verdict)((long)dat)));
     };
     runSUB.AspectToStringConverter = delegate(object dat)
     {
         if (dat == null)
         {
             return("");
         }
         return(Functions.FormatRuntime((long)dat));
     };
     rankSUB.AspectToStringConverter = delegate(object dat)
     {
         if (dat == null)
         {
             return("");
         }
         if ((long)dat == -1)
         {
             return("-");
         }
         return(((long)dat).ToString());
     };
 }
Exemplo n.º 16
0
        public void SaveSubmission(List <dtoSubmissionValueField> fields, DateTime clickDt, bool forsubmit = false)
        {
            //Attenzione!
            //Senza questo controllo, allo scadere della sessione l'utente legittimo si ritrova con la propria
            //sottomissione associata ad "anonimo", il che implica che:
            //l'utente non puo' più accedere,
            //gli amministratori si trovano con un bando sottomesso da ignoti.

            if (!View.isAnonymousSubmission & UserContext.isAnonymous)
            {
                View.DisplayCallUnavailableForPublic();
                //View.DisplaySessionTimeout();
                return;
            }

            UserSubmission submission = Service.GetUserSubmission(View.IdSubmission);

            if (forsubmit)
            {
                if (submission == null || submission.AllowEditSubmission(View.InitSubmissionTime, clickDt))
                {
                    Boolean tryToComplete = View.TryToComplete;
                    submission = SaveUserSubmission(fields);
                }

                return;
            }


            if (submission == null || submission.AllowEditSubmission(View.InitSubmissionTime, clickDt))
            {
                Boolean tryToComplete = View.TryToComplete;
                submission = SaveUserSubmission(fields);

                if (submission != null)
                {
                    LoadSections(submission.Call, submission.Type.Id, submission.Id, View.IdRevision, (tryToComplete) ? Service.GetSubmissionFieldErrors(submission, View.IdRevision) : null, (tryToComplete) ? Service.GetSubmissionRequiredFileErrors(submission) : null);
                }
            }
            else if (submission != null)
            {
                View.GoToUrl(CallStandardAction.None, RootObject.ViewSubmission(submission.Call.Type, submission.Call.Id, submission.Id, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity, 0));
            }
            else
            {
                View.GoToUrl(CallStandardAction.List, RootObject.ViewCalls(View.IdCall, CallForPaperType.CallForBids, CallStandardAction.List, View.IdCallCommunity, CallStatusForSubmitters.SubmissionClosed));
            }
        }
Exemplo n.º 17
0
        public IActionResult Modify([FromBody] UserSubmission user, [FromHeader] string session)
        {
            if (user == null)
            {
                return(BadRequest(Errors.MissingFields));
            }

            User userInDatabase = database.GetUser(user.Username);

            if (userInDatabase == null)
            {
                return(NotFound(Errors.NoSuchElement));
            }

            int        requesterID;
            UserStatus requesterStatus;

            if (!DataHandler.DecodeJWT(session, out requesterID, out requesterStatus))
            {
                return(Unauthorized());
            }

            if (requesterStatus < UserStatus.Active)
            {
                return(new ForbidResult(Errors.PermissionDenied));
            }

            if (userInDatabase.ID != requesterID &&
                user.Password != null && user.Password != "")
            {
                return(new ForbidResult(Errors.PermissionDenied));
            }
            else
            {
                // A user can only make a change to themselves or if they are a moderator
                if (requesterID == userInDatabase.ID ||
                    requesterStatus >= UserStatus.Moderator)
                {
                    database.UpdateUser(userInDatabase.ID, user, requesterStatus);
                    database.SaveChanges();
                    return(new ObjectResult(database.GetUser(userInDatabase.ID)));
                }
                else
                {
                    return(new ForbidResult(Errors.PermissionDenied));
                }
            }
        }
Exemplo n.º 18
0
        private UserSubmission SaveUserRevision(List <dtoSubmissionValueField> fields)
        {
            long           idCall       = View.IdCall;
            long           idSubmission = this.View.IdSubmission;
            long           idRevision   = View.IdRevision;
            Int32          idUser       = UserContext.CurrentUserID;
            UserSubmission submission   = null;

            try
            {
                submission = Service.SaveSubmissionRevision(idSubmission, idRevision, idUser, fields);
            }
            catch (SubmissionNotFound ex)
            {
                View.LoadError(RevisionErrorView.Unknown);
            }
            catch (SubmissionNotSaved ex)
            {
                View.LoadError(RevisionErrorView.StringValueSaving);
            }
            if (submission != null)
            {
                try
                {
                    Service.SaveSubmissionRevisionFiles(submission, idRevision, idUser, View.GetFileValues(submission, ModuleCallForPaper.UniqueCode, View.IdCallModule, (int)ModuleCallForPaper.ActionType.DownloadSubmittedFile, (int)ModuleCallForPaper.ObjectType.UserSubmission));
                }
                catch (SubmissionInternalFileNotLinked ex)
                {
                    View.LoadError(RevisionErrorView.FileSaving);
                }
                switch (View.CallType)
                {
                case CallForPaperType.CallForBids:
                    View.SendUserAction(View.IdCallCommunity, View.IdCallModule, idRevision, ModuleCallForPaper.ActionType.SaveRevision);
                    break;

                case CallForPaperType.RequestForMembership:
                    View.SendUserAction(View.IdCallCommunity, View.IdCallModule, idRevision, ModuleRequestForMembership.ActionType.SaveRevision);
                    break;
                }
            }
            else
            {
                LoadSections(idCall, View.IdSubmitterType, idSubmission, idRevision);
            }
            return(submission);
        }
Exemplo n.º 19
0
        public HttpResponseMessage Post([FromBody] UserSubmission user)
        {
            var model = new UserService.User
            {
                FirstName = user.Firstname,
                LastName  = user.Lastname,
                Email     = user.Email
            };

            using (var client = new UserServiceClient())
            {
                var userId   = client.Create(model);
                var response = Request.CreateResponse(HttpStatusCode.Created);
                var uri      = Url.Link("UserApi", new { id = userId });
                response.Headers.Location = new Uri(uri);
                return(response);
            }
        }
Exemplo n.º 20
0
        private PdfPTable WriteSubmissionHeader(UserSubmission submission, litePerson person, Dictionary <SubmissionTranslations, string> translations)
        {
            PdfPTable table          = WriteCallHeader(submission.Call, submission.Type, translations);
            PdfPCell  separatortCell = new PdfPCell();

            separatortCell.AddElement(GetWhiteParagraph());
            separatortCell.Border = 0;
            table.AddCell(separatortCell);
            DateTime printDate = DateTime.Now;
            String   printedBy = String.Format(translations[SubmissionTranslations.PrintInfo], (person == null || person.TypeID == (int)UserTypeStandard.Guest) ? translations[SubmissionTranslations.AnonymousUser] : person.SurnameAndName, printDate.ToShortDateString(), printDate.ToShortTimeString());
            PdfPCell printCell = new PdfPCell(new Phrase(printedBy, GetFont(ItemType.PrintInfos)));

            printCell.HorizontalAlignment = Element.ALIGN_LEFT;
            printCell.Border = 0;
            table.AddCell(printCell);

            return(table);
        }
        public void Update(UserSubmission item)
        {
            using (APCRSHREntities context = new APCRSHREntities())
            {
                var submit = context.UserSubmissions.Where(a => a.SubmitID.Equals(item.SubmitID)).SingleOrDefault();
                if (submit != null)
                {
                    submit.SubmissionNumber = item.SubmissionNumber;
                    submit.UserID           = item.UserID;
                    submit.Status           = item.Status;

                    context.SaveChanges();
                }
                else
                {
                    throw new Exception(string.Format("Submit id {0} invalid", item.SubmitID));
                }
            }
        }
        public void VirtualDeleteSubmission(DateTime clickDt)
        {
            UserSubmission submission = Service.GetUserSubmission(View.IdSubmission);

            if (submission == null)
            {
                View.GoToUrl(CallStandardAction.List, RootObject.ViewCalls(View.IdCall, CallForPaperType.RequestForMembership, CallStandardAction.List, View.IdCallCommunity, CallStatusForSubmitters.SubmissionClosed));
            }
            else if (submission.AllowEditSubmission(View.InitSubmissionTime, clickDt))
            {
                Service.VirtualDeleteSubmission(View.IdSubmission, true);
                View.SendUserAction(View.IdCallCommunity, View.IdCallModule, submission.Id, ModuleRequestForMembership.ActionType.VirtualDeleteSubmission);
                View.GoToUrl(RootObject.ViewCalls(View.IdCall, CallForPaperType.RequestForMembership, CallStandardAction.List, View.IdCallCommunity, CallStatusForSubmitters.SubmissionOpened));
            }
            else
            {
                View.GoToUrl(RootObject.ViewSubmission(submission.Call.Type, submission.Call.Id, submission.Id, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity, 0));
            }
        }
Exemplo n.º 23
0
        public IActionResult SubmitEat(UserSubmission usersubmission)
        {
            //Checks to see if the model is right.
            if (ModelState.IsValid)
            {
                //This checks to see if the user submitted a favorite dish before adding it to the tempstorage list.
                usersubmission.FavoriteDish = usersubmission.FavoriteDish ?? "It's All Tasty";

                TempStorage.AddSubmission(usersubmission);

                //Take the user to a brief confirmation page.
                return(View("Confirmation"));
            }
            //If things don't check out, keep the user on the page and dont add any objects.
            else
            {
                return(View());
            }
        }
Exemplo n.º 24
0
        public bool AddUser(UserSubmission user)
        {
            User profile = new User
            {
                Name         = user.Username,
                Email        = user.Email,
                Status       = user.Status,
                HasSignature = user.HasSignature,
                Signature    = user.Signature,
                Created      = new DateTime(DateTime.Now.Ticks)
            };

            DataHandler.PopulatePasswordData(profile, user.Password);

            user.Status = UserStatus.Active;

            Users.Add(profile);

            return(true);
        }
Exemplo n.º 25
0
        public bool UpdateUser(int id, UserSubmission user, UserStatus requestPermission)
        {
            User profile = GetUser(id);

            if (profile == null)
            {
                return(false);
            }

            if (user.Password != null && user.Password != "")
            {
                DataHandler.PopulatePasswordData(profile, user.Password);
            }

            profile.Name         = user.Username;
            profile.Email        = user.Email;
            profile.HasSignature = user.HasSignature;
            profile.Signature    = user.Signature;

            return(true);
        }
Exemplo n.º 26
0
        public void SaveRevision(List <dtoSubmissionValueField> fields)
        {
            dtoRevisionRequest rev = Service.GetRevisionRequest(View.IdRevision, false);

            if (rev != null && rev.AllowSubmission(View.InitSubmissionTime) && rev.AllowSave)
            {
                Boolean        tryToComplete = View.TryToComplete;
                UserSubmission sub           = SaveUserRevision(fields);
                if (sub != null)
                {
                    LoadSections(sub.Call, sub.Type.Id, sub.Id, View.IdRevision, (tryToComplete) ? Service.GetSubmissionFieldErrors(sub, View.IdRevision) : null);
                }
            }
            else if (rev != null)
            {
                View.GoToUrl(RootObject.ViewSubmission(View.CallType, View.IdCall, View.IdSubmission, View.IdRevision, View.PreloadedUniqueID, false, false, View.PreloadView, View.PreloadIdOtherCommunity, 0));
            }
            else
            {
                View.GoToUrl(RootObject.ViewCalls(View.IdCall, View.CallType, CallStandardAction.List, View.IdCallCommunity, View.PreloadView));
            }
        }
        public void SaveSubmission(List <dtoSubmissionValueField> fields, DateTime clickDt)
        {
            UserSubmission submission = Service.GetUserSubmission(View.IdSubmission);

            if (submission == null || submission.AllowEditSubmission(View.InitSubmissionTime, clickDt))
            {
                Boolean tryToComplete = View.TryToComplete;
                submission = SaveUserSubmission(fields);
                if (submission != null)
                {
                    LoadSections(submission.Call, submission.Type.Id, submission.Id, View.IdRevision, (tryToComplete) ? Service.GetSubmissionFieldErrors(submission, View.IdRevision) : null);
                }
            }
            else if (submission != null)
            {
                View.GoToUrl(CallStandardAction.None, RootObject.ViewSubmission(submission.Call.Type, submission.Call.Id, submission.Id, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity, 0));
            }
            else
            {
                View.GoToUrl(CallStandardAction.List, RootObject.ViewCalls(View.IdCall, CallForPaperType.RequestForMembership, CallStandardAction.List, View.IdCallCommunity, CallStatusForSubmitters.SubmissionClosed));
            }
        }
Exemplo n.º 28
0
        private PdfPTable WriteSubmissionInfo(UserSubmission submission, SubmissionStatus status, Dictionary <SubmissionTranslations, string> translations)
        {
            PdfPTable table = GetTable(2, new float[] { 30, 70 }, 1);
            PdfPCell  cell  = new PdfPCell(GetParagraph(translations[SubmissionTranslations.SubmittedByTitle], GetFont(ItemType.FieldName)));

            table.AddCell(cell);
            String owner     = (submission.Owner == null || submission.Owner.TypeID == (int)UserTypeStandard.Guest) ? translations[SubmissionTranslations.AnonymousUser] : submission.Owner.SurnameAndName;
            String submitter = (submission.SubmittedBy == null || submission.SubmittedBy.TypeID == (int)UserTypeStandard.Guest) ? translations[SubmissionTranslations.AnonymousUser] : submission.SubmittedBy.SurnameAndName;

            if (!submission.SubmittedOn.HasValue)
            {
                cell = new PdfPCell(GetParagraph(String.Format(translations[SubmissionTranslations.CreatedByInfo], owner, submission.ModifiedOn.Value.ToShortDateString(), submission.ModifiedOn.Value.ToShortTimeString()), GetFont(ItemType.Paragraph)));
            }
            else if (submission.Owner == submission.SubmittedBy)
            {
                cell = new PdfPCell(GetParagraph(String.Format(translations[SubmissionTranslations.SubmittedByInfo], submitter, submission.SubmittedOn.Value.ToShortDateString(), submission.SubmittedOn.Value.ToShortTimeString()), GetFont(ItemType.Paragraph)));
            }
            else
            {
                cell = new PdfPCell(GetParagraph(String.Format(translations[SubmissionTranslations.SubmittedForInfo], submitter, owner, submission.SubmittedOn.Value.ToShortDateString(), submission.SubmittedOn.Value.ToShortTimeString()), GetFont(ItemType.Paragraph)));
            }

            table.AddCell(cell);

            cell = new PdfPCell(new Phrase(translations[SubmissionTranslations.SubmittedTypeTitle], GetFont(ItemType.FieldName)));
            table.AddCell(cell);

            cell = new PdfPCell(new Phrase(submission.Type.Name, GetFont(ItemType.Paragraph)));
            table.AddCell(cell);

            cell = new PdfPCell(new Phrase(translations[SubmissionTranslations.SubmissionStatusTitle], GetFont(ItemType.FieldName)));
            table.AddCell(cell);

            cell = new PdfPCell(new Phrase(translations[(SubmissionTranslations)(int)status], GetFont(ItemType.Paragraph)));
            table.AddCell(cell);

            return(table);
        }
Exemplo n.º 29
0
 public DataModel.Response.FindItemReponse <DataModel.Model.UserSubmissionModel> FindByID(string id)
 {
     try
     {
         IUserSubmissionRepository submissionRepository = RepositoryClassFactory.GetInstance().GetUserSubmissionRepository();
         UserSubmission            submission           = submissionRepository.FindByID(id);
         var _submission = MapperUtil.CreateMapper().Mapper.Map <UserSubmission, UserSubmissionModel>(submission);
         return(new FindItemReponse <UserSubmissionModel>
         {
             Item = _submission,
             ErrorCode = (int)ErrorCode.None,
             Message = string.Empty
         });
     }
     catch (Exception ex)
     {
         return(new FindItemReponse <UserSubmissionModel>
         {
             ErrorCode = (int)ErrorCode.Error,
             Message = ex.Message
         });
     }
 }
Exemplo n.º 30
0
        protected override RuleOutcome EvaluateRule(VoatRuleContext context)
        {
            UserSubmission submission = context.PropertyBag.UserSubmission;

            //Check banned domains in submission content
            var containsBannedDomain = false;

            switch (submission.Type)
            {
            case SubmissionType.Link:
                containsBannedDomain = BanningUtility.ContentContainsBannedDomain(context.Subverse.Name, $"{submission.Title} {submission.Url}");
                break;

            case SubmissionType.Text:
                containsBannedDomain = BanningUtility.ContentContainsBannedDomain(context.Subverse.Name, $"{submission.Title} {submission.Content}");
                break;
            }
            if (containsBannedDomain)
            {
                return(CreateOutcome(RuleResult.Denied, "Submission contains banned domains"));
            }

            return(Allowed);
        }