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)); } }
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); }