コード例 #1
0
        private async Task <Result <PostPersonalProfileWrapper> > SaveSkills(PostPersonalProfileWrapper postPPWraper)
        {
            return(await postPPWraper.skillEntities
                   .Success()
                   .Async()
                   .Bind(x => DeleteUnusedSkills(x, postPPWraper.personalProfile.UserId))
                   .Bind(UpdateSkills)
                   .Bind(InsertSkills)
                   .MapAsync(_ => postPPWraper));

            async Task <Result <List <SkillEntity> > > DeleteUnusedSkills(List <SkillEntity> skills, int userId)
            {
                await _dependencies.DeleteUnusedSkills(
                    skills.Where(a => a.Id != null).Select(a => Convert.ToInt32(a.Id)).Distinct().ListOrEmpty(), userId);

                return(skills);
            }

            async Task <Result <List <SkillEntity> > > UpdateSkills(List <SkillEntity> skills)
            {
                return((await _dependencies.UpdateSkills(skills.Where(a => a.Id != null).ListOrEmpty()))
                       .Map(_ => skills));
            }

            async Task <Result <List <SkillEntity> > > InsertSkills(List <SkillEntity> skills)
            {
                return((await _dependencies.InsertSkills(skills.Where(a => a.Id == null).ListOrEmpty()))
                       .Map(_ => skills));
            }
        }
コード例 #2
0
        private async Task <Result <PostPersonalProfileWrapper> > SavePersonalProfile(PostPersonalProfileWrapper postPPWraper)
        {
            if (postPPWraper.personalProfile.Id == null)
            {
                await _dependencies.InsertPersonalProfile(postPPWraper.personalProfile);
            }

            await _dependencies.UpdatePersonalProfile(postPPWraper.personalProfile);

            return(postPPWraper);
        }