public void RemoveFieldFile(long idSubmittedField, List <dtoSubmissionValueField> fields) { Int32 containerIdCommunity = (View.PreloadIdOtherCommunity != -1) ? View.PreloadIdOtherCommunity : View.IdCallCommunity; dtoRevisionRequest rev = Service.GetRevisionRequest(View.IdRevision, false); if (rev == null) { if (View.PreloadView == CallStatusForSubmitters.Revisions) { View.SetActionUrl(CallStandardAction.ViewRevisions, RootObject.ViewRevisions(View.CallType, CallStandardAction.List, View.IdCallCommunity, CallStatusForSubmitters.Revisions)); } else { View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(View.IdCall, View.CallType, CallStandardAction.List, containerIdCommunity, View.PreloadView)); } } else if (rev.AllowSubmission(View.InitSubmissionTime) && rev.AllowSave) { try { Service.RemoveFieldFileValue(idSubmittedField); switch (View.CallType) { case CallForPaperType.CallForBids: View.SendUserAction(View.IdCallCommunity, View.IdCallModule, View.IdRevision, ModuleCallForPaper.ActionType.VirtualDeleteSubmittedFile); break; case CallForPaperType.RequestForMembership: View.SendUserAction(View.IdCallCommunity, View.IdCallModule, View.IdRevision, ModuleRequestForMembership.ActionType.VirtualDeleteSubmittedFile); break; } } catch (Exception ex) { } SaveRevision(fields); } else { View.GoToUrl(RootObject.ViewSubmission(View.CallType, View.IdCall, View.IdSubmission, View.IdRevision, View.PreloadedUniqueID, false, false, View.PreloadView, containerIdCommunity, 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 InitView() { Boolean isAnonymousUser = UserContext.isAnonymous; long idCall = View.PreloadIdCall; CallForPaperType type = Service.GetCallType(idCall); long idSubmission = View.PreloadedIdSubmission; long idRevision = View.PreloadedIdRevision; Guid uniqueId = View.PreloadedUniqueID; dtoSubmissionRevision submission = Service.GetSubmissionWithRevisions(idSubmission, true); int idModule = (type == CallForPaperType.CallForBids) ? Service.ServiceModuleID() : ServiceRequest.ServiceModuleID(); View.CallType = type; dtoBaseForPaper call = Service.GetDtoBaseCall(idCall); int idCommunity = SetCallCurrentCommunity(call); View.IdCall = idCall; View.IdCallModule = idModule; View.IdCallCommunity = idCommunity; View.IdSubmission = idSubmission; if (submission != null && (idRevision == 0 && submission.Revisions.Where(r => r.Id == idRevision && r.AllowSave).Any())) { idRevision = submission.GetIdWorkingRevision(); } View.IdRevision = idRevision; Int32 containerIdCommunity = (View.PreloadIdOtherCommunity != -1) ? View.PreloadIdOtherCommunity : idCommunity; if (isAnonymousUser) { View.DisplaySessionTimeout(); } else if (submission == null) { View.DisplayRevisionUnknown(); View.SetActionUrl(CallStandardAction.ViewRevisions, RootObject.ViewRevisions(type, CallStandardAction.List, containerIdCommunity, CallStatusForSubmitters.Revisions)); } else if (submission != null && (idRevision == 0 || submission.IsAnonymous || submission.IdPerson != UserContext.CurrentUserID)) { if (idRevision == 0) { View.DisplayRevisionUnavailable(); } else { View.DisplayNoPermission(idCommunity, idModule); } View.SetActionUrl(CallStandardAction.ViewRevisions, RootObject.ViewRevisions(type, CallStandardAction.List, containerIdCommunity, CallStatusForSubmitters.Revisions)); } else { int idUser = UserContext.CurrentUserID; litePerson currenUser = GetCurrentUser(ref idUser); Boolean allowView = false; View.CallRepository = call.GetRepositoryIdentifier(); switch (type) { case CallForPaperType.CallForBids: ModuleCallForPaper module = Service.CallForPaperServicePermission(idUser, idCommunity); allowView = (submission.Owner.Id == idUser || module.ManageCallForPapers || module.Administration || ((module.CreateCallForPaper || module.EditCallForPaper) && call.Owner.Id == idUser)); break; case CallForPaperType.RequestForMembership: ModuleRequestForMembership moduleR = Service.RequestForMembershipServicePermission(idUser, idCommunity); allowView = (submission.Owner.Id == idUser || moduleR.ManageBaseForPapers || moduleR.Administration || ((moduleR.CreateBaseForPaper || moduleR.EditBaseForPaper) && call.Owner.Id == idUser)); break; } View.IdSubmission = idSubmission; View.IdSubmitterType = submission.Type.Id; View.TryToComplete = false; dtoRevisionRequest rev = submission.GetWorkingRevision(); View.InitializeView(Service.RevisionWithFileToUpload(idRevision)); DateTime InitTime = DateTime.Now; Boolean allowTimeRevision = rev.AllowSubmission(InitTime); Boolean allowSave = false; Boolean allowCompleteSubmission = false; if (!allowTimeRevision && (rev.Status == RevisionStatus.Request || rev.Status == RevisionStatus.RequestAccepted || rev.Status == RevisionStatus.Required)) { View.DisplayRevisionTimeExpired(); switch (type) { case CallForPaperType.CallForBids: View.SendUserAction(idCommunity, idModule, idRevision, ModuleCallForPaper.ActionType.ViewRevision); break; case CallForPaperType.RequestForMembership: View.SendUserAction(idCommunity, idModule, idRevision, ModuleRequestForMembership.ActionType.ViewRevision); break; } } else { idSubmission = (submission == null) ? 0 : submission.Id; View.AllowDeleteSubmission = false; //View.AllowDeleteSubmission = (submission != null && submission.Deleted == BaseStatusDeleted.None && submission.Status == SubmissionStatus.draft); allowCompleteSubmission = allowTimeRevision && (rev != null && rev.Deleted == BaseStatusDeleted.None && rev.AllowSave); allowSave = allowCompleteSubmission; View.InitSubmissionTime = InitTime; switch (type) { case CallForPaperType.CallForBids: View.SendUserAction(idCommunity, idModule, idRevision, ModuleCallForPaper.ActionType.ViewRevision); break; case CallForPaperType.RequestForMembership: View.SendUserAction(idCommunity, idModule, idRevision, ModuleRequestForMembership.ActionType.ViewRevision); break; } } View.AllowSave = allowSave; View.AllowCompleteSubmission = allowCompleteSubmission; LoadRevision(call, submission, rev); if (allowView) { if (View.PreloadView == CallStatusForSubmitters.Revisions) { View.SetActionUrl(CallStandardAction.ViewRevisions, RootObject.ViewRevisions(type, CallStandardAction.List, containerIdCommunity, CallStatusForSubmitters.Revisions)); } else { View.SetActionUrl(CallStandardAction.List, RootObject.ViewCalls(idCall, type, CallStandardAction.List, containerIdCommunity, View.PreloadView)); } } } }
public void SaveCompleteRevision(List <dtoSubmissionValueField> fields, String baseFilePath, String translationFileName, String webSiteUrl, dtoRevisionMessage message) { Int32 containerIdCommunity = (View.PreloadIdOtherCommunity != -1) ? View.PreloadIdOtherCommunity : View.IdCallCommunity; long idSubmission = this.View.IdSubmission; long idCall = View.IdCall; long idRevision = View.IdRevision; UserSubmission submission = Service.GetUserSubmission(View.IdSubmission); dtoRevisionRequest rev = Service.GetRevisionRequest(View.IdRevision, false); if (submission != null && rev != null && rev.AllowSubmission(View.InitSubmissionTime) && rev.AllowSave) { submission = SaveUserRevision(fields); if (submission != null && rev != null) { idSubmission = submission.Id; View.TryToComplete = true; try { Int32 idUser = UserContext.CurrentUserID; litePerson person = GetCurrentUser(ref idUser); if (submission.Owner.Id == idUser) { Service.CompleteSubmissionRevision(submission, idRevision, idUser, View.InitSubmissionTime, baseFilePath, fields, translationFileName, webSiteUrl, message); View.AllowCompleteSubmission = false; View.AllowDeleteSubmission = false; View.AllowSave = false; View.SendUserAction(View.IdCallCommunity, View.IdCallModule, idRevision, ModuleCallForPaper.ActionType.ConfirmSubmission); View.GoToUrl(RootObject.FinalMessage(View.CallType, idCall, idSubmission, idRevision, submission.UserCode, false, false, View.PreloadView, containerIdCommunity)); } else if (UserContext.isAnonymous) { View.DisplayCallUnavailableForPublic(); } else { View.DisplaySessionTimeout(); } } catch (SubmissionStatusChange ex) { //View.AllowDeleteSubmission = (submission != null && submission.Deleted == BaseStatusDeleted.None && submission.Status == SubmissionStatus.draft); View.LoadError(RevisionErrorView.StringValueSaving); } catch (SubmissionItemsEmpty ex) { Dictionary <long, FieldError> errors = Service.GetSubmissionFieldErrors(submission, idRevision); View.AllowDeleteSubmission = (submission != null && submission.Deleted == BaseStatusDeleted.None && submission.Status == SubmissionStatus.draft); View.LoadError((errors.ToList().Where(er => er.Value != FieldError.Mandatory).Any()) ? RevisionErrorView.InvalidFields : RevisionErrorView.RequiredItems); LoadSections(submission.Call, submission.Type.Id, idSubmission, View.IdRevision, errors); } catch (SubmissionTimeExpired ex) { View.LoadError(RevisionErrorView.TimeExpired); } //View.InitSubmissionTime = DateTime.Now; } } else if (rev != null) { View.GoToUrl(RootObject.ViewSubmission(View.CallType, View.IdCall, View.IdSubmission, View.IdRevision, View.PreloadedUniqueID, false, false, View.PreloadView, containerIdCommunity, 0)); } else { View.GoToUrl(RootObject.ViewCalls(View.IdCall, View.CallType, CallStandardAction.List, containerIdCommunity, View.PreloadView)); } }