示例#1
0
        public void AddProjectHeading(ProjectHeading projectHeading)
        {
            mProjects.Insert(0, projectHeading);
            var itemModel = new ProjectItemViewModel(projectHeading);

            ProjectsCreated.Insert(0, itemModel);
            HaveProjectsCreated = true;
        }
        private async Task SaveProject()
        {
            View.HidenKeyboard();

            if (EmailInvite != string.Empty)
            {
                Invite();
            }

            if (Title == null || Title == "")
            {
                mMessageboxService.ShowToast(Messages.EmptyProjectName);
                return;
            }
            if (string.IsNullOrEmpty(mCacheService.TempDescription))
            {
                mMessageboxService.ShowToast(Messages.EmptyDescriptionProjectName);
                return;
            }
            else
            {
                Description = mPlatformService.GetPreference("Description");
                //mPlatformService.SetPreference("Description", "");
            }


            var inviteData = new List <Invite>();

            for (int i = 0; i < Invites.Count; i++)
            {
                inviteData.Add(Invites[i].Invite);
            }

            Project project = new Project()
            {
                UserId      = Mvx.Resolve <ICacheService>().CurrentUserData.UserId,
                Title       = Title,
                Description = mCacheService.TempDescription,
                Stage       = Stage,
                Created     = DateTime.Now,
                Started     = DateTime.Now,
                Updated     = DateTime.Now,
                Invites     = inviteData
            };

            mPlatformService.ShowNetworkIndicator();
            mProgressDialogService.ShowProgressDialog();

            var response = await mApiService.CreateProject(project);

            mPlatformService.HideNetworkIndicator();
            mProgressDialogService.HideProgressDialog();

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var data = response.Data;
                mMessageboxService.ShowToast("Add project successful");
                Mvx.Resolve <ITrackingService>().SendEvent("Created Project");
                mPlatformService.SetPreference("Description", String.Empty);

                var newProject = new ProjectHeading
                {
                    ProjectId     = (long)data.Id,
                    Stage         = data.Stage,
                    Title         = data.Title,
                    UserIsCreator = true,
                    CreatedJoined = (System.DateTimeOffset)data.Created,
                    Alert         = false,
                };

                ViewModelAction action = new ViewModelAction
                {
                    ActionType       = ViewModelActionType.Add,
                    ViewModelType    = typeof(HomeViewModel),
                    SubViewModelType = typeof(ProjectsViewModel),
                    Data             = newProject
                };
                Mvx.Resolve <IMvxMessenger>().Publish(new ViewModelActionMessage(this, action));
                Close(this);
            }
            else
            {
                string errorData = response.ErrorData;
                if (!string.IsNullOrEmpty(errorData))
                {
                    mMessageboxService.ShowToast(errorData);
                }
            }
        }
示例#3
0
 public ProjectItemViewModel(ProjectHeading projectHeading)
 {
     this.ProjectHeading = projectHeading;
 }