Exemplo n.º 1
0
        public Response <UserProfile> GetUserProfileByUserId(string userId)
        {
            User_Profiles dbUserProfile = null;

            if (EnumAppConfig.IsLocal)
            {
                dbUserProfile = _localUnitOfWork.DataContext.User_Profiles.FirstOrDefault(u => u.UserId == userId);
            }
            else
            {
                dbUserProfile = _centralizedUnitOfWork.DataContext.User_Profiles.FirstOrDefault(u => u.UserId == userId);
            }
            if (dbUserProfile != null)
            {
                var userProfile = new BE.UserProfile
                {
                    DOB = dbUserProfile.DOB,
                    Employment_Company_Name   = dbUserProfile.Employment_Company_Name,
                    Employment_Contact_Number = dbUserProfile.Employment_Contact_Number,
                    Employment_End_Date       = dbUserProfile.Employment_End_Date,
                    Employment_Job_Title      = dbUserProfile.Employment_Job_Title,
                    Employment_Name           = dbUserProfile.Employment_Name,
                    Employment_Remarks        = dbUserProfile.Employment_Remarks,
                    Employment_Start_Date     = dbUserProfile.Employment_Start_Date,
                    Maritial_Status           = dbUserProfile.Maritial_Status,
                    Nationality = dbUserProfile.Nationality,
                    NextOfKin_BlkHouse_Number = dbUserProfile.NextOfKin_BlkHouse_Number,
                    NextOfKin_Contact_Number  = dbUserProfile.NextOfKin_Contact_Number,
                    NextOfKin_Country         = dbUserProfile.NextOfKin_Country,
                    NextOfKin_FlrUnit_Number  = dbUserProfile.NextOfKin_FlrUnit_Number,
                    NextOfKin_Name            = dbUserProfile.NextOfKin_Name,
                    NextOfKin_PostalCode      = dbUserProfile.NextOfKin_PostalCode,
                    NextOfKin_Relationship    = dbUserProfile.NextOfKin_Relationship,
                    NextOfKin_Street_Name     = dbUserProfile.NextOfKin_Street_Name,
                    Other_Address_ID          = dbUserProfile.Other_Address_ID,
                    Primary_Email             = dbUserProfile.Primary_Email,
                    Primary_Phone             = dbUserProfile.Primary_Phone,
                    Residential_Addess_ID     = dbUserProfile.Residential_Addess_ID,
                    Secondary_Email           = dbUserProfile.Secondary_Email,
                    Secondary_Phone           = dbUserProfile.Secondary_Phone,
                    UserId          = dbUserProfile.UserId,
                    User_Photo1     = dbUserProfile.User_Photo1,
                    User_Photo2     = dbUserProfile.User_Photo2,
                    DateOfIssue     = dbUserProfile.Date_of_Issue,
                    Gender          = dbUserProfile.Gender,
                    Race            = dbUserProfile.Race,
                    SerialNumber    = dbUserProfile.Serial_Number,
                    LeftThumbImage  = dbUserProfile.LeftThumb_Photo,
                    RightThumbImage = dbUserProfile.RightThumb_Photo,
                    Expired_Date    = dbUserProfile.Expired_Date,
                };
                return(new Response <UserProfile>((int)EnumResponseStatuses.Success, EnumResponseMessage.Success, userProfile));
            }
            return(new Response <UserProfile>((int)EnumResponseStatuses.ErrorSystem, EnumResponseMessage.ErrorSystem, null));
        }
Exemplo n.º 2
0
 public bool UpdateProfile(BE.UserProfile model)
 {
     if (EnumAppConfig.IsLocal)
     {
         bool statusCentralized;
         CallCentralized.Post <bool>("User_Profiles", "UpdateProfile", out statusCentralized, model);
         if (!statusCentralized)
         {
             throw new Trinity.Common.ExceptionArgs(EnumMessage.NotConnectCentralized);
         }
         else
         {
             User_Profiles dbUserProfile;
             var           localUserProfileRepo = _localUnitOfWork.GetRepository <User_Profiles>();
             dbUserProfile = localUserProfileRepo.GetById(model.UserId);
             if (dbUserProfile == null)
             {
                 dbUserProfile = new User_Profiles();
                 SetInfo(dbUserProfile, model);
                 localUserProfileRepo.Add(dbUserProfile);
             }
             else
             {
                 SetInfo(dbUserProfile, model);
                 localUserProfileRepo.Update(dbUserProfile);
             }
             return(_localUnitOfWork.Save() > 0);
         }
     }
     else
     {
         var           centralUserProfileRepo = _centralizedUnitOfWork.GetRepository <User_Profiles>();
         User_Profiles dbUserProfile          = centralUserProfileRepo.GetById(model.UserId);
         if (dbUserProfile == null)
         {
             dbUserProfile = new User_Profiles();
             SetInfo(dbUserProfile, model);
             centralUserProfileRepo.Add(dbUserProfile);
         }
         else
         {
             SetInfo(dbUserProfile, model);
             centralUserProfileRepo.Update(dbUserProfile);
         }
         return(_centralizedUnitOfWork.Save() > 0);
     }
 }
Exemplo n.º 3
0
        protected void SetInfo(User_Profiles dbUserProfile, BE.UserProfile model)
        {
            dbUserProfile.UserId = model.UserId;
            dbUserProfile.DOB    = model.DOB;
            dbUserProfile.Employment_Company_Name   = model.Employment_Company_Name;
            dbUserProfile.Employment_Contact_Number = model.Employment_Contact_Number;
            dbUserProfile.Employment_End_Date       = model.Employment_End_Date;
            dbUserProfile.Employment_Job_Title      = model.Employment_Job_Title;
            dbUserProfile.Employment_Name           = model.Employment_Name;
            dbUserProfile.Employment_Remarks        = model.Employment_Remarks;
            dbUserProfile.Employment_Start_Date     = model.Employment_Start_Date;
            dbUserProfile.Maritial_Status           = model.Maritial_Status;
            dbUserProfile.Nationality = model.Nationality;
            dbUserProfile.NextOfKin_BlkHouse_Number = model.NextOfKin_BlkHouse_Number;
            dbUserProfile.NextOfKin_Contact_Number  = model.NextOfKin_Contact_Number;
            dbUserProfile.NextOfKin_Country         = model.NextOfKin_Country;
            dbUserProfile.NextOfKin_FlrUnit_Number  = model.NextOfKin_FlrUnit_Number;
            dbUserProfile.NextOfKin_Name            = model.NextOfKin_Name;
            dbUserProfile.NextOfKin_PostalCode      = model.NextOfKin_PostalCode;
            dbUserProfile.NextOfKin_Relationship    = model.NextOfKin_Relationship;
            dbUserProfile.NextOfKin_Street_Name     = model.NextOfKin_Street_Name;
            dbUserProfile.Primary_Email             = model.Primary_Email;
            dbUserProfile.Primary_Phone             = model.Primary_Phone;
            dbUserProfile.Other_Address_ID          = model.Other_Address_ID != "" ? model.Other_Address_ID : null;
            dbUserProfile.Residential_Addess_ID     = model.Residential_Addess_ID != "" ? model.Residential_Addess_ID : null;
            dbUserProfile.Secondary_Email           = model.Secondary_Email;
            dbUserProfile.Secondary_Phone           = model.Secondary_Phone;
            dbUserProfile.User_Photo1   = model.User_Photo1;
            dbUserProfile.User_Photo2   = model.User_Photo2;
            dbUserProfile.Date_of_Issue = model.DateOfIssue;
            dbUserProfile.Gender        = model.Gender;
            dbUserProfile.Race          = model.Race;
            dbUserProfile.Serial_Number = model.SerialNumber;


            var dalUser  = new Trinity.DAL.DAL_User();
            var result   = dalUser.GetUserByUserId(model.UserId);
            var user     = result.Data;
            var userInfo = new Trinity.Common.UserInfo
            {
                NRIC     = user.NRIC,
                UserName = user.Name //,
                                     //Date = model.DOB.ToString()
            };
        }
Exemplo n.º 4
0
 public Response <bool> UpdateUserProfile(BE.UserProfile model)
 {
     try
     {
         User_Profiles dbUserProfile = null;
         if (EnumAppConfig.IsLocal)
         {
             dbUserProfile = UpdateLocal(model, model.UserId);
             dbUserProfile = UpdateCentral(model, model.UserId);
             return(new Response <bool>((int)EnumResponseStatuses.Success, EnumResponseMessage.Success, true));
         }
         else
         {
             dbUserProfile = UpdateCentral(model, model.UserId);
             return(new Response <bool>((int)EnumResponseStatuses.Success, EnumResponseMessage.Success, true));
         }
     }
     catch (Exception ex)
     {
         return(new Response <bool>((int)EnumResponseStatuses.ErrorSystem, EnumResponseMessage.ErrorSystem, false));
     }
 }
Exemplo n.º 5
0
        public bool ARKUpdateProfile(string UserID, Dictionary <string, Dictionary <string, object> > dataUpdate, List <string> arrayScanDocument, out BE.UserProfile User_Profiles_New, out BE.Address Alternate_Addresses_New, out Guid?IDDocuemnt_Re)
        {
            IDDocuemnt_Re           = null;
            User_Profiles_New       = null;
            Alternate_Addresses_New = null;

            bool isUpdateUser_Profiles = false;
            bool isSaveDataBase        = false;

            CreateUserProfileIfNotExit(UserID);
            Nullable <Guid> IDDocuemnt = null;

            if (arrayScanDocument.Count > 0)
            {
                IDDocuemnt = new DAL_UploadedDocuments().Insert(arrayScanDocument, UserID);
            }

            DAL.DBContext.User_Profiles userProfile         = _localUnitOfWork.DataContext.User_Profiles.FirstOrDefault(d => d.UserId.Equals(UserID));
            DAL.DBContext.Address       Alternate_Addresses = null;
            if (!string.IsNullOrEmpty(userProfile.Other_Address_ID))
            {
                Alternate_Addresses = _localUnitOfWork.DataContext.Addresses.FirstOrDefault(d => d.Address_ID.Equals(userProfile.Other_Address_ID));
            }
            if (dataUpdate.ContainsKey("Alternate_Addresses"))
            {
                if (Alternate_Addresses == null)
                {
                    Alternate_Addresses = new DBContext.Address()
                    {
                        Address_ID = Guid.NewGuid().ToString().Trim()
                    };
                    foreach (var item in dataUpdate["Alternate_Addresses"])
                    {
                        PropertyInfo propertyInfo = Alternate_Addresses.GetType().GetProperty(item.Key);
                        propertyInfo.SetValue(Alternate_Addresses, item.Value == null ? null : Convert.ChangeType(item.Value, propertyInfo.PropertyType), null);
                    }
                    userProfile.Other_Address_ID = Alternate_Addresses.Address_ID;
                    _localUnitOfWork.GetRepository <DAL.DBContext.Address>().Add(Alternate_Addresses);
                    isUpdateUser_Profiles = true;
                    isSaveDataBase        = true;
                }
                else
                {
                    bool isUpdateAddress = false;
                    foreach (var item in dataUpdate["Alternate_Addresses"])
                    {
                        PropertyInfo propertyInfo = Alternate_Addresses.GetType().GetProperty(item.Key);
                        propertyInfo.SetValue(Alternate_Addresses, item.Value == null ? null : Convert.ChangeType(item.Value, propertyInfo.PropertyType), null);
                        isSaveDataBase  = true;
                        isUpdateAddress = true;
                    }
                    if (isUpdateAddress)
                    {
                        _localUnitOfWork.GetRepository <DAL.DBContext.Address>().Update(Alternate_Addresses);
                    }
                }
            }

            if (dataUpdate.ContainsKey("User_Profiles"))
            {
                foreach (var item in dataUpdate["User_Profiles"])
                {
                    PropertyInfo propertyInfo   = userProfile.GetType().GetProperty(item.Key);
                    var          underlyingType = Nullable.GetUnderlyingType(propertyInfo.PropertyType);
                    propertyInfo.SetValue(userProfile, item.Value == null ? null : Convert.ChangeType(item.Value, underlyingType ?? propertyInfo.PropertyType), null);
                    isUpdateUser_Profiles = true;
                    isSaveDataBase        = true;
                }
            }

            if (IDDocuemnt.HasValue)
            {
                userProfile.Document_ID = IDDocuemnt.Value;
                isUpdateUser_Profiles   = true;
                isSaveDataBase          = true;
                IDDocuemnt_Re           = IDDocuemnt.Value;
            }



            if ((!userProfile.Employment_Start_Date.HasValue && userProfile.Employment_End_Date.HasValue) || (userProfile.Employment_Start_Date.HasValue && userProfile.Employment_End_Date.HasValue && userProfile.Employment_Start_Date.Value >= userProfile.Employment_End_Date.Value))
            {
                Lib.LayerWeb.ShowMessage("<b>Employment Start Date</b> must be less than <b>Employment End Date</b>");
                return(false);
            }
            else
            {
                if (isUpdateUser_Profiles)
                {
                    _localUnitOfWork.GetRepository <DAL.DBContext.User_Profiles>().Update(userProfile);
                }
                if (isSaveDataBase)
                {
                    _localUnitOfWork.Save();
                }
                User_Profiles_New       = userProfile.Map <BE.UserProfile>();
                Alternate_Addresses_New = Alternate_Addresses.Map <BE.Address>();;
            }
            return(true);
        }
Exemplo n.º 6
0
        public UserProfile GetProfile(string userId)
        {
            User_Profiles dbUserProfile = null;

            if (EnumAppConfig.IsLocal)
            {
                dbUserProfile = _localUnitOfWork.DataContext.User_Profiles.FirstOrDefault(u => u.UserId == userId);
                if (dbUserProfile == null && !EnumAppConfig.ByPassCentralizedDB)
                {
                    UserProfile data = CallCentralized.Get <UserProfile>(EnumAPIParam.User, "GetProfileByUserId", "userId=" + userId);
                    return(data);
                }
            }
            else
            {
                dbUserProfile = _centralizedUnitOfWork.DataContext.User_Profiles.FirstOrDefault(u => u.UserId == userId);
            }

            if (dbUserProfile != null)
            {
                var userProfile = new BE.UserProfile
                {
                    DOB = dbUserProfile.DOB,
                    Employment_Company_Name   = dbUserProfile.Employment_Company_Name,
                    Employment_Contact_Number = dbUserProfile.Employment_Contact_Number,
                    Employment_End_Date       = dbUserProfile.Employment_End_Date,
                    Employment_Job_Title      = dbUserProfile.Employment_Job_Title,
                    Employment_Name           = dbUserProfile.Employment_Name,
                    Employment_Remarks        = dbUserProfile.Employment_Remarks,
                    Employment_Start_Date     = dbUserProfile.Employment_Start_Date,
                    Maritial_Status           = dbUserProfile.Maritial_Status,
                    Nationality = dbUserProfile.Nationality,
                    NextOfKin_BlkHouse_Number = dbUserProfile.NextOfKin_BlkHouse_Number,
                    NextOfKin_Contact_Number  = dbUserProfile.NextOfKin_Contact_Number,
                    NextOfKin_Country         = dbUserProfile.NextOfKin_Country,
                    NextOfKin_FlrUnit_Number  = dbUserProfile.NextOfKin_FlrUnit_Number,
                    NextOfKin_Name            = dbUserProfile.NextOfKin_Name,
                    NextOfKin_PostalCode      = dbUserProfile.NextOfKin_PostalCode,
                    NextOfKin_Relationship    = dbUserProfile.NextOfKin_Relationship,
                    NextOfKin_Street_Name     = dbUserProfile.NextOfKin_Street_Name,
                    Other_Address_ID          = dbUserProfile.Other_Address_ID,
                    Primary_Email             = dbUserProfile.Primary_Email,
                    Primary_Phone             = dbUserProfile.Primary_Phone,
                    Residential_Addess_ID     = dbUserProfile.Residential_Addess_ID,
                    Secondary_Email           = dbUserProfile.Secondary_Email,
                    Secondary_Phone           = dbUserProfile.Secondary_Phone,
                    UserId          = dbUserProfile.UserId,
                    User_Photo1     = dbUserProfile.User_Photo1,
                    User_Photo2     = dbUserProfile.User_Photo2,
                    DateOfIssue     = dbUserProfile.Date_of_Issue,
                    Gender          = dbUserProfile.Gender,
                    Race            = dbUserProfile.Race,
                    SerialNumber    = dbUserProfile.Serial_Number,
                    LeftThumbImage  = dbUserProfile.LeftThumb_Photo,
                    RightThumbImage = dbUserProfile.RightThumb_Photo,
                    Expired_Date    = dbUserProfile.Expired_Date,
                };
                return(userProfile);
            }
            return(null);
        }
Exemplo n.º 7
0
        public void CreateRequest(BE.UserProfile User_Profiles_Old,
                                  BE.Address Alternate_Addresses_Old,
                                  BE.UserProfile User_Profiles_New,
                                  BE.Address Alternate_Addresses_New,
                                  Guid?DocumentID,
                                  bool isScanDocument,
                                  bool isDoLogin
                                  )
        {
            var dataApprove = _localUnitOfWork.DataContext.UpdateProfile_Requests.Where(d => d.UserId == User_Profiles_Old.UserId && d.Status == Enum_UpdateProfile.Approve).OrderByDescending(d => d.UpdatedTime).FirstOrDefault();
            var dataPending = _localUnitOfWork.DataContext.UpdateProfile_Requests.FirstOrDefault(d => d.UserId == User_Profiles_Old.UserId && d.Status == Enum_UpdateProfile.Pending);

            if (dataApprove == null)
            {
                Dictionary <string, object> dataRequest = new Dictionary <string, object>();
                dataRequest.Add("User_Profiles", User_Profiles_Old);
                dataRequest.Add("Alternate_Addresses", Alternate_Addresses_Old);
                dataRequest.Add("UploadedDocuments", new List <Guid>());

                dataApprove = new DBContext.UpdateProfile_Requests()
                {
                    Status               = Enum_UpdateProfile.Approve,
                    UpdatedTime          = DateTime.Now,
                    UserId               = User_Profiles_Old.UserId,
                    VersionId            = Guid.NewGuid().ToString().Trim(),
                    Current_Content_JSON = JsonConvert.SerializeObject(dataRequest)
                };
                _localUnitOfWork.GetRepository <DBContext.UpdateProfile_Requests>().Add(dataApprove);
            }
            if (dataPending == null)
            {
                Dictionary <string, object> dataRequest = new Dictionary <string, object>();
                dataRequest.Add("User_Profiles", User_Profiles_New);
                dataRequest.Add("Alternate_Addresses", Alternate_Addresses_New);
                if (DocumentID.HasValue)
                {
                    dataRequest.Add("UploadedDocuments", new List <Guid>()
                    {
                        DocumentID.Value
                    });
                }
                else
                {
                    dataRequest.Add("UploadedDocuments", new List <Guid>());
                }

                dataPending = new DBContext.UpdateProfile_Requests()
                {
                    Status               = isDoLogin || !isScanDocument ? Enum_UpdateProfile.Approve : Enum_UpdateProfile.Pending,
                    UpdatedTime          = DateTime.Now,
                    UserId               = User_Profiles_Old.UserId,
                    VersionId            = Guid.NewGuid().ToString().Trim(),
                    Current_Content_JSON = JsonConvert.SerializeObject(dataRequest)
                };
                _localUnitOfWork.GetRepository <DBContext.UpdateProfile_Requests>().Add(dataPending);
            }
            else
            {
                Dictionary <string, object> dataRowRequest = JsonConvert.DeserializeObject <Dictionary <string, object> >(dataPending.Current_Content_JSON);
                List <Guid> arrayDocument = JsonConvert.DeserializeObject <List <Guid> >(JsonConvert.SerializeObject(dataRowRequest["UploadedDocuments"]));
                if (DocumentID.HasValue)
                {
                    arrayDocument.Add(DocumentID.Value);
                }
                Dictionary <string, object> dataRequest = new Dictionary <string, object>();
                dataRequest.Add("User_Profiles", User_Profiles_New);
                dataRequest.Add("Alternate_Addresses", Alternate_Addresses_New);
                dataRequest.Add("UploadedDocuments", arrayDocument);
                dataPending.Current_Content_JSON = JsonConvert.SerializeObject(dataRequest);
                dataPending.UpdatedTime          = DateTime.Now;
                if (isDoLogin)
                {
                    dataPending.Status = Enum_UpdateProfile.Approve;
                }

                _localUnitOfWork.GetRepository <DBContext.UpdateProfile_Requests>().Update(dataPending);
            }
            _localUnitOfWork.Save();
        }