예제 #1
0
        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);
        }