public void SaveCompleteSubmission( List <dtoSubmissionValueField> fields, lm.Comol.Core.MailCommons.Domain.Configurations.SmtpServiceConfig smtpConfig, String websiteUrl, Dictionary <SubmissionTranslations, string> translations, String BaseFilePath, String translationFileName, DateTime clickDt) { long idSubmission = this.View.IdSubmission; long idCall = View.IdCall; UserSubmission submission = Service.GetUserSubmission(View.IdSubmission); if (submission == null || submission.AllowEditSubmission(View.InitSubmissionTime, clickDt)) { submission = SaveUserSubmission(fields); Revision revision = Service.GetRevision(View.IdRevision); if ((submission != null || submission.AllowEditSubmission(View.InitSubmissionTime, clickDt)) && revision != null) { idSubmission = submission.Id; //View.IdSubmission = idSubmission; View.TryToComplete = true; try { Int32 idUser = UserContext.CurrentUserID; litePerson person = GetCurrentUser(ref idUser); if (submission.Owner.Id == idUser) { if (fields.Any(f => f.Field.Type == FieldType.FileInput && (f.Value == null || f.Value.IdLink == 0))) { List <SubmissionFieldFileValue> fValues = (from f in CurrentManager.GetIQ <SubmissionFieldFileValue>() where f.Submission == submission && f.Deleted == BaseStatusDeleted.None && f.Revision.Id == revision.Id select f).ToList(); if (fValues.Any()) { foreach (dtoSubmissionValueField field in fields.Where(f => f.Field.Type == FieldType.FileInput && (f.Value == null || f.Value.IdLink == 0))) { field.Value.IdLink = fValues.Where(f => f.Field.Id == field.IdField).Select(f => f.Link.Id).FirstOrDefault(); } } } bool needSignature = Service.NeedSignature(idCall); if (needSignature) { Service.UserLockSubmission(submission, revision, View.InitSubmissionTime, idUser, BaseFilePath, fields, smtpConfig, websiteUrl, translations, translationFileName, clickDt); } else { //Service.UserCompleteSubmission(submission, revision, View.InitSubmissionTime, idUser, baseFilePath, fields, smtpConfig, websiteUrl, translations, translationZIPFileName, clickDt); Service.UserCompleteSubmission(submission, revision, View.InitSubmissionTime, idUser, BaseFilePath, fields, smtpConfig, websiteUrl, translations, translationFileName, clickDt); } //Service.UserCompleteSubmission(submission, revision, View.InitSubmissionTime, idUser, BaseFilePath, fields, smtpConfig, websiteUrl, translations, translationFileName, clickDt); View.AllowCompleteSubmission = false; View.AllowDeleteSubmission = false; View.AllowSave = false; View.SendUserAction(View.IdCallCommunity, View.IdCallModule, submission.Id, ModuleCallForPaper.ActionType.ConfirmSubmission); if (needSignature) { View.GoToUrl( RootObject.ContinueSubmission(CallForPaperType.CallForBids, idCall, Service.CallIsPublic(idCall), idSubmission, View.FromPublicList, CallStatusForSubmitters.Draft, View.PreloadIdOtherCommunity) ); //(CallForPaperType.CallForBids, idCall, idSubmission, // View.FromPublicList, CallStatusForSubmitters.Draft, View.PreloadIdOtherCommunity) //); } else { View.GoToUrl(RootObject.FinalMessage(CallForPaperType.CallForBids, idCall, idSubmission, View.IdRevision, submission.UserCode, View.isAnonymousSubmission, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity)); } //View.GoToUrl(RootObject.FinalMessage(CallForPaperType.CallForBids, idCall, idSubmission, View.IdRevision, submission.UserCode, View.isAnonymousSubmission, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity)); } else if (!View.isAnonymousSubmission && UserContext.isAnonymous) { View.DisplayCallUnavailableForPublic(); } else { View.DisplaySessionTimeout(); } } catch (SubmissionStatusChange ex) { View.AllowDeleteSubmission = (submission != null && submission.Deleted == BaseStatusDeleted.None && submission.Status == SubmissionStatus.draft); View.LoadError(SubmissionErrorView.SubmissionValueSaving, View.IdCallCommunity, idCall, CallStatusForSubmitters.SubmissionOpened); } catch (SubmissionItemsEmpty ex) { Dictionary <long, FieldError> errors = Service.GetSubmissionFieldErrors(submission, revision); List <dtoSubmissionValueField> errorFields = fields.Where(f => !errors.ContainsKey(f.IdField) && f.FieldError != FieldError.None).ToList(); errorFields.ForEach(e => errors.Add(e.IdField, e.FieldError)); View.AllowDeleteSubmission = (submission != null && submission.Deleted == BaseStatusDeleted.None && submission.Status == SubmissionStatus.draft); View.LoadError((errors.ToList().Where(er => er.Value != FieldError.Mandatory).Any()) ? SubmissionErrorView.InvalidFields : SubmissionErrorView.RequiredItems, View.IdCallCommunity, idCall, CallStatusForSubmitters.SubmissionOpened); LoadSections(submission.Call, submission.Type.Id, idSubmission, View.IdRevision, errors, Service.GetSubmissionRequiredFileErrors(submission)); } catch (SubmissionTimeExpired ex) { View.LoadError(SubmissionErrorView.SubmissionValueSaving, View.IdCallCommunity, idCall, CallStatusForSubmitters.SubmissionClosed); } //View.InitSubmissionTime = DateTime.Now; } } else if (submission != null) { View.GoToUrl(CallStandardAction.None, RootObject.ViewSubmission(CallForPaperType.CallForBids, idCall, idSubmission, View.FromPublicList, CallStatusForSubmitters.Submitted, View.PreloadIdOtherCommunity, 0)); } else { View.GoToUrl(CallStandardAction.List, RootObject.ViewCalls(idCall, CallForPaperType.CallForBids, CallStandardAction.List, View.IdCallCommunity, CallStatusForSubmitters.SubmissionClosed)); } }