private async Task <int?> FileUploadAsync(IFormFile formFile, Profile profile, List <FileView> allResponse, DocumentType type) { try { var savedEntity = await SaveFileAsync(formFile, profile.Id); allResponse.Add(GetResponse(savedEntity.Id, type, formFile)); await UploadIntoFileDbAsync(savedEntity.IdGuid, formFile); return(savedEntity.Id); } catch (Exception e) { allResponse.Add(new FileView { DocumentType = type, IsSuccess = false, ResponseMessage = ClientMessageConstant.WeAreUnableToProcessYourRequest }); } return(null); }
public async Task <IRecommendLeaderResponse> AddRecommendLeader(RecommendLeaderView view) { try { logger.Info($"{ GetType().Name} { ExtensionUtility.GetCurrentMethod() } input: {view.ToJsonString()} UserIPAddress: { _userIPAddress.GetUserIP().Result }"); var firstName = await _appDbContext.Profiles.Where(k => k.Id == view.ProfileID).Select(k => k.FirstNameEn).FirstOrDefaultAsync(); var lastName = await _appDbContext.Profiles.Where(k => k.Id == view.ProfileID).Select(k => k.LastNameEn).FirstOrDefaultAsync(); var userName = firstName + " " + lastName; var matchingProfileId = 0; var profileUrl = ""; var RecommendStatusItem = await _appDbContext.LookupItems.Where(k => k.LookupId == (int)LookupType.StatusItem).OrderBy(k => k.NameEn).FirstOrDefaultAsync(); //var email = await _appDbContext.UserInfos.Where(k => k.UserId == view.ProfileID).Select(k => k.Email).FirstOrDefaultAsync(); var linkedinUrl = new Profile(); var TwitterUrl = new Profile(); var email = new UserInfo(); var mobile = new UserInfo(); if (view.LinkedinURL != null) { linkedinUrl = await _appDbContext.Profiles.Where(x => x.LinkedInUrl == view.LinkedinURL).FirstOrDefaultAsync(); } if (view.TwitterURL != null) { TwitterUrl = await _appDbContext.Profiles.Where(x => x.TwitterUrl == view.TwitterURL).FirstOrDefaultAsync(); } if (view.Email != null) { email = await _appDbContext.UserInfos.Where(x => x.Email == view.Email).FirstOrDefaultAsync(); } if (view.ContactNumber != null) { mobile = await _appDbContext.UserInfos.Where(x => x.Mobile == view.ContactNumber).FirstOrDefaultAsync(); } if (linkedinUrl?.LinkedInUrl != null || TwitterUrl?.TwitterUrl != null || email?.Email != null || mobile?.Mobile != null) { profileUrl = "https://stagingplatform.uaeglp.gov.ae/"; matchingProfileId = email.Email != null ? email.Id : mobile.Mobile != null ? mobile.Id : linkedinUrl.LinkedInUrl != null ? linkedinUrl.Id : TwitterUrl.TwitterUrl != null ? TwitterUrl.Id : 0; } var recommendLeader = new RecommendLeadr() { FullName = view.FullName, RecommendingText = view.RecommendingText, Occupation = view.Occupation, ContactNumber = view.ContactNumber, Email = view.Email, LinkedinURL = view.LinkedinURL, TwitterURL = view.TwitterURL, InstagramURL = view.InstagramURL, RecommenderProfileID = view.ProfileID != 0 ? view.ProfileID : null, OtherFitment = view.OthersText, SourceItemID = view.SourceItemID, StatusItemID = RecommendStatusItem.Id, Created = DateTime.Now, Modified = DateTime.Now, CreatedBy = view.ProfileID != null ? userName : "******", ModifiedBy = view.ProfileID != null ? userName : "******", RecommendedProfileID = matchingProfileId != 0 ? matchingProfileId : (int?)null }; if (view.AudioFile != null) { var audioGuid = Guid.NewGuid(); recommendLeader.RecommendingAudioID = audioGuid; minioAudioVideoUpload(view.AudioFile, "audio", audioGuid); } if (view.VideoFile != null) { var videoGuid = Guid.NewGuid(); recommendLeader.RecommendingVideoID = videoGuid; minioAudioVideoUpload(view.VideoFile, "video", videoGuid); } await _appDbContext.RecommandLeaders.AddAsync(recommendLeader); await _appDbContext.SaveChangesAsync(); var recommendId = await _appDbContext.RecommandLeaders.Where(x => x.ID == recommendLeader.ID).Select(x => x.ID).FirstOrDefaultAsync(); List <int?> FitList = new List <int?>(); FitList = view.RecommendLeaderFit != null ? view.RecommendLeaderFit : null; var recommendFit = new RecommendationFitDetails(); var recommendFitOther = new RecommandationOther(); if (FitList != null) { foreach (var item in FitList) { recommendFit = new RecommendationFitDetails() { RecommendID = recommendId, RecommendationFitItemId = item }; await _appDbContext.RecommendationFitDetails.AddAsync(recommendFit); await _appDbContext.SaveChangesAsync(); _appDbContext.Entry(recommendFit).State = EntityState.Detached; } } var data = new RecommendLeaderSubmissionView() { RecommendLeaderSubmission = _mapper.Map <RecommendSubmissionView> (recommendLeader), RecommendLeaderFitment = FitList, }; data.RecommendLeaderSubmission.RecommendViewProfileURL = profileUrl; return(new RecommendLeaderResponse(data)); } catch (Exception ex) { logger.Error(ex); throw ex; } }
public async Task <List <RecommendSubmissionView> > GetAllRecommendLeaderListAsync(int skip, int limit) { try { logger.Info($"{ GetType().Name} { ExtensionUtility.GetCurrentMethod() } UserIPAddress: { _userIPAddress.GetUserIP().Result }"); var recommendSubmission = await _appDbContext.RecommandLeaders.OrderByDescending(x => x.Created).Skip(skip).Take(limit).ToListAsync(); //var profileIds = recommendSubmission ///var profileUrl = ""; //int profileId = 0; var linkedinUrl = new Profile(); var TwitterUrl = new Profile(); var email = new UserInfo(); var mobile = new UserInfo(); var recommendLeaderList = _mapper.Map <List <RecommendSubmissionView> >(recommendSubmission); foreach (var item in recommendLeaderList) { var profileUrl = ""; var stagingUrl = "https://stagingplatform.uaeglp.gov.ae/"; //int profileId = 0; var recommendUser = await _appDbContext.RecommandLeaders.Where(x => x.ID == item.ID).FirstOrDefaultAsync(); if (recommendUser.LinkedinURL != null) { linkedinUrl = await _appDbContext.Profiles.Where(x => x.LinkedInUrl == recommendUser.LinkedinURL).FirstOrDefaultAsync(); } if (recommendUser.TwitterURL != null) { TwitterUrl = await _appDbContext.Profiles.Where(x => x.TwitterUrl == recommendUser.TwitterURL).FirstOrDefaultAsync(); } if (recommendUser.Email != null) { email = await _appDbContext.UserInfos.Where(x => x.Email == recommendUser.Email).FirstOrDefaultAsync(); } if (recommendUser.ContactNumber != null) { mobile = await _appDbContext.UserInfos.Where(x => x.Mobile == recommendUser.ContactNumber).FirstOrDefaultAsync(); } if ((recommendUser.LinkedinURL != null && linkedinUrl?.LinkedInUrl != null) || (recommendUser.TwitterURL != null && TwitterUrl?.TwitterUrl != null) || (recommendUser.Email != null && email?.Email != null) || (recommendUser.ContactNumber != null && mobile?.Mobile != null)) { profileUrl = email.Email != null ? stagingUrl : mobile.Mobile != null ? stagingUrl : linkedinUrl.LinkedInUrl != null ? stagingUrl : TwitterUrl.TwitterUrl != null ? stagingUrl : ""; } item.RecommendViewProfileURL = profileUrl; item.RecommendViewProfileID = recommendUser.RecommendedProfileID; } return(recommendLeaderList); } catch (Exception ex) { logger.Error(ex); throw ex; } }
public async Task <RecommendProfileView> GetViewMatchProfile(int recommendId) { try { logger.Info($"{ GetType().Name} { ExtensionUtility.GetCurrentMethod() } input: {recommendId} UserIPAddress: { _userIPAddress.GetUserIP().Result }"); var profileUrl = ""; var profileRecommended = await _appDbContext.RecommandLeaders.Where(x => x.RecommendedProfileID == 0 || x.RecommendedProfileID == null).ToListAsync(); foreach (var item in profileRecommended) { var linkedinUrl = new Profile(); var TwitterUrl = new Profile(); var email = new UserInfo(); var mobile = new UserInfo(); if (item.LinkedinURL != null) { linkedinUrl = await _appDbContext.Profiles.Where(x => x.LinkedInUrl == item.LinkedinURL).FirstOrDefaultAsync(); } if (item.TwitterURL != null) { TwitterUrl = await _appDbContext.Profiles.Where(x => x.TwitterUrl == item.TwitterURL).FirstOrDefaultAsync(); } if (item.Email != null) { email = await _appDbContext.UserInfos.Where(x => x.Email == item.Email).FirstOrDefaultAsync(); } if (item.TwitterURL != null) { mobile = await _appDbContext.UserInfos.Where(x => x.Mobile == item.ContactNumber).FirstOrDefaultAsync(); } if ((item.LinkedinURL != null && linkedinUrl?.LinkedInUrl != null) || (item.TwitterURL != null && TwitterUrl?.TwitterUrl != null) || (item.Email != null && email?.Email != null) || (item.ContactNumber != null && mobile?.Mobile != null)) { item.RecommendedProfileID = email.Email != null ? email.Id : mobile.Mobile != null ? mobile.Id : linkedinUrl.LinkedInUrl != null ? linkedinUrl.Id : TwitterUrl.TwitterUrl != null ? TwitterUrl.Id : 0; await _appDbContext.SaveChangesAsync(); } } var data = new RecommendProfileView(); var recommendUser = await _appDbContext.RecommandLeaders.Where(x => x.ID == recommendId).FirstOrDefaultAsync(); var linkedinUrlVal = new Profile(); var TwitterUrlVal = new Profile(); var emailVal = new UserInfo(); var mobileVal = new UserInfo(); if (recommendUser.LinkedinURL != null) { linkedinUrlVal = await _appDbContext.Profiles.Where(x => x.LinkedInUrl == recommendUser.LinkedinURL).FirstOrDefaultAsync(); } if (recommendUser.TwitterURL != null) { TwitterUrlVal = await _appDbContext.Profiles.Where(x => x.TwitterUrl == recommendUser.TwitterURL).FirstOrDefaultAsync(); } if (recommendUser.Email != null) { emailVal = await _appDbContext.UserInfos.Where(x => x.Email == recommendUser.Email).FirstOrDefaultAsync(); } if (recommendUser.ContactNumber != null) { mobileVal = await _appDbContext.UserInfos.Where(x => x.Mobile == recommendUser.ContactNumber).FirstOrDefaultAsync(); } if (linkedinUrlVal?.LinkedInUrl != null || TwitterUrlVal?.TwitterUrl != null || emailVal?.Email != null || mobileVal?.Mobile != null) { profileUrl = "https://stagingplatform.uaeglp.gov.ae/"; } var fullname = recommendUser.FullName != null?recommendUser.FullName.Trim().Split(new char[0]) : null; List <Profile> matchProfiles = new List <Profile>(); if (fullname != null) { if (fullname.Length == 1) { matchProfiles = await _appDbContext.Profiles.Where(x => x.FirstNameEn.StartsWith(fullname[0]) || x.LastNameEn.StartsWith(fullname[0])).ToListAsync(); } else if (fullname.Length == 2) { matchProfiles = await _appDbContext.Profiles.Where(x => x.FirstNameEn.StartsWith(fullname[0]) || x.FirstNameEn.StartsWith(fullname[1]) || x.LastNameEn.StartsWith(fullname[0]) || x.LastNameEn.StartsWith(fullname[1])).ToListAsync(); } else if (fullname.Length == 3) { matchProfiles = await _appDbContext.Profiles.Where(x => x.FirstNameEn.StartsWith(fullname[0]) || x.FirstNameEn.StartsWith(fullname[1]) || x.FirstNameEn.StartsWith(fullname[2]) || x.LastNameEn.StartsWith(fullname[0]) || x.LastNameEn.StartsWith(fullname[1]) || x.LastNameEn.StartsWith(fullname[2])).ToListAsync(); } else if (fullname.Length == 4) { matchProfiles = await _appDbContext.Profiles.Where(x => x.FirstNameEn.StartsWith(fullname[0]) || x.FirstNameEn.StartsWith(fullname[1]) || x.FirstNameEn.StartsWith(fullname[2]) || x.FirstNameEn.StartsWith(fullname[3]) || x.LastNameEn.StartsWith(fullname[0]) || x.LastNameEn.StartsWith(fullname[1]) || x.LastNameEn.StartsWith(fullname[2]) || x.LastNameEn.StartsWith(fullname[3])).ToListAsync(); } } //var matchProfile = await _appDbContext.Profiles.Where(x => recommendUser.FullName.Contains(x.FirstNameEn) || //recommendUser.FullName.Contains(x.LastNameEn)).ToListAsync(); //var matchProfile = await _appDbContext.Profiles.FromSqlRaw($"SELECT * FROM dbo.Profile where soundex(firstNameEn) = soundex('{recommendUser.FullName}')").ToListAsync(); //var matchProfile = await _appDbContext.Profiles.FromSqlRaw($"select * from dbo.Profile where difference(soundex(FirstNameEN + ' ' + LastNameEN),soundex('{recommendUser.FullName}')) = 4").ToListAsync(); List <PublicProfileView> matchProfileDetails = new List <PublicProfileView>(); foreach (var item in matchProfiles) { var profile = await _appDbContext.Profiles.FirstOrDefaultAsync(k => k.Id == item.Id); var workExperience = await _appDbContext.ProfileWorkExperiences.Include(k => k.Title) .Where(k => k.ProfileId == item.Id).OrderByDescending(y => y.DateFrom).FirstOrDefaultAsync(); var userDetails = await _appDbContext.Users.FirstOrDefaultAsync(k => k.Id == item.Id); PublicProfileView user = new PublicProfileView() { Id = profile.Id, FirstNameAr = profile.FirstNameAr, FirstNameEn = profile.FirstNameEn, LastNameAr = profile.LastNameAr, LastNameEn = profile.LastNameEn, SecondNameAr = profile.SecondNameAr, SecondNameEn = profile.SecondNameEn, ThirdNameAr = profile.ThirdNameAr, ThirdNameEn = profile.ThirdNameEn, Designation = workExperience?.Title?.TitleEn, DesignationAr = workExperience?.Title?.TitleAr, UserImageFileId = userDetails.OriginalImageFileId ?? 0 }; matchProfileDetails.Add(user); } if (matchProfiles != null) { data = new RecommendProfileView() { RecommendMatchProfileList = matchProfileDetails, RecommendViewProfileURL = profileUrl }; } return(data); } catch (Exception ex) { logger.Error(ex); throw ex; } }