private bool CanPublish(object obj) { if (String.IsNullOrWhiteSpace(Name)) { UploadStateMessage = Resources.ProvideWorskspaceNameMessage; IsReadyToUpload = false; return(false); } if (String.IsNullOrWhiteSpace(Description)) { UploadStateMessage = Resources.ProvideWorskspaceDescriptionMessage; IsReadyToUpload = false; return(false); } if (!model.HasAuthProvider) { UploadStateMessage = Resources.ProvideAuthProviderMessage; IsReadyToUpload = false; return(false); } // If workspace is uploading now, we can't upload one more at the same time. if (isUploading) { return(false); } if (model.State == PublishModel.UploadState.Failed) { if (firstTimeErrorMessage) { GenerateErrorMessage(); IsReadyToUpload = false; // We should show error message just one time. firstTimeErrorMessage = false; // Even if there is error, user can try submit one more time. // E.g. user typed wrong login or password. return(true); } else { model.ClearState(); } } UploadStateMessage = Resources.ReadyForPublishMessage; IsReadyToUpload = true; return(true); }