示例#1
0
文件: CSMService.cs 项目: KKPBank/SLM
 private static void LogRequest_InsertOrUpdateUser(InsertOrUpdateUserRequest request)
 {
     _log.Debug("===== [START] Request Parameter =====");
     _log.Debug("ActionType=" + request.ActionType);
     _log.Debug("WindowsUsername="******"EmployeeCodeNew=" + request.EmployeeCodeNew);
     _log.Debug("EmployeeCodeOld=" + request.EmployeeCodeOld);
     _log.Debug("MarketingCode=" + request.MarketingCode);
     _log.Debug("FirstName=" + request.FirstName);
     _log.Debug("LastName=" + request.LastName);
     _log.Debug("Phone1=" + request.Phone1);
     _log.Debug("Phone2=" + request.Phone2);
     _log.Debug("Phone3=" + request.Phone3);
     _log.Debug("Email=" + request.Email);
     _log.Debug("PositionCode=" + request.PositionCode);
     _log.Debug("RoleSale=" + request.RoleSale);
     _log.Debug("MarketingTeam=" + request.MarketingTeam);
     _log.Debug("BranchCode=" + request.BranchCode);
     _log.Debug("SupervisorEmployeeCode=" + request.SupervisorEmployeeCode);
     _log.Debug("Line=" + request.Line);
     _log.Debug("Rank=" + request.Rank);
     _log.Debug("EmployeeType=" + request.EmployeeType);
     _log.Debug("CompanyName=" + request.CompanyName);
     _log.Debug("TelesaleTeam=" + request.TelesaleTeam);
     _log.Debug("RoleCode=" + request.RoleCode);
     _log.Debug("IsGroup=" + request.IsGroup);
     _log.Debug("Status=" + request.Status);
     _log.Debug("ActionUsername="******"MarketingFlag=" + request.MarketingFlag);
     _log.Debug("===== [END] Request Parameter =====");
 }
示例#2
0
        public InsertOrUpdateUserResponse InsertOrUpdateUser(InsertOrUpdateUserRequest request)
        {
            ThreadContext.Properties["EventClass"]    = ApplicationHelpers.GetCurrentMethod(1);
            ThreadContext.Properties["RemoteAddress"] = ApplicationHelpers.GetClientIP();

            _logger.DebugFormat("-- XMLRequest --\n{0}", request.SerializeObject());
            _userFacade = new UserFacade();
            var response = _userFacade.InsertOrUpdateUser(request);

            if (response != null)
            {
                _logger.DebugFormat("-- XMLResponse --\n{0}", response.SerializeObject());
            }
            return(response);
        }
示例#3
0
文件: UserFacade.cs 项目: KKPBank/CSM
        public InsertOrUpdateUserResponse InsertOrUpdateUser(InsertOrUpdateUserRequest request)
        {
            var          stopwatch = System.Diagnostics.Stopwatch.StartNew();
            UserResponse response  = new UserResponse();

            Logger.Info(_logMsg.Clear().SetPrefixMsg("Call UserService.InsertOrUpdateUser").ToInputLogString());
            Logger.Debug("I:--START--:--UserService.InsertOrUpdateUser--");

            try
            {
                if (request.ActionType != 1 && request.ActionType != 2)
                {
                    return(new InsertOrUpdateUserResponse()
                    {
                        IsSuccess = false,
                        ErrorCode = "2",
                        ErrorMessage = "Action Type must be 1 or 2. (1=Insert,2=Update)"
                    });
                }

                bool valid = false;
                _commonFacade = new CommonFacade();

                if (request.Header != null)
                {
                    valid           = _commonFacade.VerifyServiceRequest <Header>(request.Header);
                    response.Header = new Header
                    {
                        reference_no     = request.Header.reference_no,
                        service_name     = request.Header.service_name,
                        system_code      = request.Header.system_code,
                        transaction_date = request.Header.transaction_date
                    };
                }

                Logger.DebugFormat("-- XMLRequest --\n{0}", request.SerializeObject());

                if (!valid)
                {
                    return(new InsertOrUpdateUserResponse()
                    {
                        IsSuccess = false,
                        ErrorCode = "99",
                        ErrorMessage = "Bad Request, the header is not valid"
                    });
                }

                #region == Validate Require Field ==

                if (string.IsNullOrEmpty(request.WindowsUsername))
                {
                    return(GetReturnErrorRequireField("WindowUserName"));
                }

                if (string.IsNullOrEmpty(request.EmployeeCodeNew))
                {
                    return(GetReturnErrorRequireField("EmployeeCodeNew"));
                }

                if (request.ActionType == 2)
                {
                    if (string.IsNullOrEmpty(request.EmployeeCodeOld))
                    {
                        return(GetReturnErrorRequireField("EmployeeCodeOld"));
                    }
                }

                if (string.IsNullOrEmpty(request.FirstName))
                {
                    return(GetReturnErrorRequireField("FirstName"));
                }

                if (string.IsNullOrEmpty(request.Phone1) && !request.IsGroup)
                {
                    return(GetReturnErrorRequireField("Phone1", " (Phone1 เป็น Required Field เมื่อ IsGroup = FALSE)"));
                }

                if (string.IsNullOrEmpty(request.PositionCode))
                {
                    return(GetReturnErrorRequireField("PositionCode"));
                }

                if (string.IsNullOrEmpty(request.RoleSale))
                {
                    return(GetReturnErrorRequireField("RoleSale"));
                }

                if (string.IsNullOrEmpty(request.BranchCode))
                {
                    return(GetReturnErrorRequireField("BranchCode"));
                }

                if (string.IsNullOrEmpty(request.RoleCode))
                {
                    return(GetReturnErrorRequireField("RoleCode"));
                }

                #endregion

                #region == Validate Code ==

                _userDataAccess = new UserDataAccess(_context);

                int?supervisorUserId = null;

                if (!string.IsNullOrEmpty(request.SupervisorEmployeeCode))
                {
                    supervisorUserId = _userDataAccess.GetUserIdByEmployeeCode(request.SupervisorEmployeeCode);
                    if (!supervisorUserId.HasValue)
                    {
                        return(new InsertOrUpdateUserResponse()
                        {
                            IsSuccess = false,
                            ErrorCode = "3",
                            ErrorMessage = "ไม่พบ Employee Code ของ Supervisor ในฐานข้อมูล CSM"
                        });
                    }
                }

                int?roleId = _userDataAccess.GetRoleIdByRoleCode(request.RoleCode);
                if (!roleId.HasValue)
                {
                    return(new InsertOrUpdateUserResponse()
                    {
                        IsSuccess = false,
                        ErrorCode = "4",
                        ErrorMessage = "ไม่พบ Role Code ในฐานข้อมูล CSM",
                    });
                }

                var branchDataAccess = new BranchDataAccess(_context);
                int?branchId         = branchDataAccess.GetBranchIdByBranchCode(request.BranchCode);
                if (!branchId.HasValue)
                {
                    Logger.DebugFormat("-- XMLResponse --\n{0}", response.SerializeObject());
                    stopwatch.Stop();
                    Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds);

                    return(new InsertOrUpdateUserResponse()
                    {
                        IsSuccess = false,
                        ErrorCode = "5",
                        ErrorMessage = "ไม่พบ Branch Code ในฐานข้อมูล CSM",
                    });
                }
                else
                {
                    response.StatusResponse = new StatusResponse
                    {
                        ErrorCode   = string.Empty,
                        Status      = Constants.StatusResponse.Success,
                        Description = "Save successful"
                    };

                    Logger.DebugFormat("-- XMLResponse --\n{0}", response.SerializeObject());
                    stopwatch.Stop();
                    Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds);
                    var result = _userDataAccess.InsertOrUpdateUser(request, supervisorUserId, roleId.Value, branchId.Value);
                    if (!result.IsSuccess)
                    {
                        return(new InsertOrUpdateUserResponse()
                        {
                            IsSuccess = false,
                            ErrorCode = "5",
                            ErrorMessage = result.ErrorMessage
                        });
                    }
                    return(result);
                }
                #endregion
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                return(new InsertOrUpdateUserResponse()
                {
                    IsSuccess = false,
                    ErrorCode = "1",
                    ErrorMessage = ex.Message
                });
            }
        }
示例#4
0
        public InsertOrUpdateUserResponse InsertOrUpdateUser(InsertOrUpdateUserRequest request, int?supervisorUserId, int roleId, int branchId)
        {
            _context.Configuration.AutoDetectChangesEnabled = false;

            try
            {
                var result = new InsertOrUpdateUserResponse();

                TB_R_USER dbUser = null;

                var transactionDateTime = DateTime.Now;

                //if (request.ActionType == 1)
                //{
                //    // Insert
                //    dbUser = null;
                //}
                //else
                //{
                //    // Update
                //    dbUser = _context.TB_R_USER.Where(user => user.EMPLOYEE_CODE.Trim().ToUpper() == request.EmployeeCodeOld.Trim().ToUpper()).FirstOrDefault();

                //    if (dbUser == null)
                //    {
                //        result.IsSuccess = false;
                //        result.ErrorCode = "8";
                //        result.ErrorMessage = "ไม่สามารถอัพเดตข้อมูล User เนื่องจากไม่พบข้อมูล User (Employee Code Old='" + request.EmployeeCodeOld + "')";
                //        return result;
                //    }
                //}

                if (!string.IsNullOrEmpty(request.EmployeeCodeOld))
                {
                    dbUser = _context.TB_R_USER.Where(user => user.EMPLOYEE_CODE.Trim().ToUpper() == request.EmployeeCodeOld.Trim().ToUpper()).FirstOrDefault();
                }

                if (dbUser == null)
                {
                    dbUser           = new TB_R_USER();
                    result.IsNewUser = true;
                }
                else
                {
                    result.IsNewUser = false;

                    // IF (Change Branch) Or (Change Status 1 to 0)
                    if (dbUser.BRANCH_ID != branchId || (dbUser.STATUS == 1 && request.Status == 0))
                    {
                        #region == Validate Job On Hand ==

                        var userId = dbUser.USER_ID;

                        var activeStatuses = new int[]
                        {
                            Constants.SRStatusId.Open,
                            Constants.SRStatusId.InProgress,
                            Constants.SRStatusId.WaitingCustomer,
                            Constants.SRStatusId.RouteBack,
                        };

                        var countJobOnHand = _context.TB_T_SR.Count(sr =>
                                                                    (
                                                                        (sr.OWNER_USER_ID == userId || sr.DELEGATE_USER_ID == userId) &&
                                                                        activeStatuses.Contains(sr.SR_STATUS_ID.Value)
                                                                    )
                                                                    ||
                                                                    (
                                                                        sr.CREATE_USER == userId &&
                                                                        sr.SR_STATUS_ID == Constants.SRStatusId.Draft
                                                                    )
                                                                    );

                        if (countJobOnHand > 0)
                        {
                            result.IsSuccess    = false;
                            result.ErrorCode    = "7";
                            result.ErrorMessage = "ไม่สามารถอัพเดตข้อมูล User ได้เนื่องจากมีงานค้างในมือ (ServiceRequest)";
                            return(result);
                        }

                        #endregion
                    }
                }

                var actionUser = _context.TB_R_USER.Where(user => user.USERNAME.Trim().ToUpper() == request.ActionUsername.Trim().ToUpper()).FirstOrDefault();
                if (actionUser == null)
                {
                    //if (dbUser == null)
                    //{
                    //    result.IsSuccess = false;
                    //    result.ErrorCode = "9";
                    //    result.ErrorMessage = "ไม่สามารถอัพเดตข้อมูล User เนื่องจากไม่พบข้อมูล Action User (Action Username='******')";
                    //    return result;
                    //}

                    actionUser = _context.TB_R_USER.Where(user => user.USERNAME.Trim().ToUpper() == Constants.SystemUserName).FirstOrDefault();
                }

                dbUser.BRANCH_ID      = branchId;
                dbUser.SUPERVISOR_ID  = supervisorUserId;
                dbUser.FIRST_NAME     = ValueOrDefault(request.FirstName);
                dbUser.LAST_NAME      = ValueOrDefault(request.LastName);
                dbUser.USERNAME       = ValueOrDefault(request.WindowsUsername);
                dbUser.STATUS         = Convert.ToInt16(request.Status);
                dbUser.ROLE_ID        = roleId;
                dbUser.EMPLOYEE_CODE  = ValueOrDefault(request.EmployeeCodeNew);
                dbUser.UPDATE_DATE    = transactionDateTime;
                dbUser.IS_GROUP       = request.IsGroup;
                dbUser.POSITION_CODE  = ValueOrDefault(request.PositionCode);
                dbUser.MARKETING_CODE = ValueOrDefault(request.MarketingCode);
                dbUser.EMAIL          = ValueOrDefault(request.Email);
                dbUser.ROLE_SALE      = ValueOrDefault(request.RoleSale);
                dbUser.MARKETING_TEAM = ValueOrDefault(request.MarketingTeam);
                dbUser.LINE           = ValueOrDefault(request.Line);
                dbUser.RANK           = ValueOrDefault(request.Rank);
                dbUser.EMPLOYEE_TYPE  = ValueOrDefault(request.EmployeeType);
                dbUser.COMPANY_NAME   = ValueOrDefault(request.CompanyName);
                dbUser.TELESALE_TEAM  = ValueOrDefault(request.TelesaleTeam);
                dbUser.MARKETING_FLAG = request.MarketingFlag;
                dbUser.EXPORT_DATE    = null;

                if (result.IsNewUser)
                {
                    for (var i = 0; i < 3; i++)
                    {
                        var phone = new TB_R_USER_PHONE();
                        phone.TB_R_USER   = dbUser;
                        phone.PHONE_NO    = i == 0 ? request.Phone1 : i == 1 ? request.Phone2 : request.Phone3;
                        phone.ORDER       = Convert.ToInt16(i + 1);
                        phone.CREATE_DATE = transactionDateTime;
                        phone.UPDATE_DATE = transactionDateTime;
                        _context.TB_R_USER_PHONE.Add(phone);
                    }
                }
                else
                {
                    var dbPhoneList = dbUser.TB_R_USER_PHONE.OrderBy(p => p.ORDER).Take(10).ToList();
                    InsertOrUpdateUserPhone(dbPhoneList, request.Phone1, 1, dbUser, transactionDateTime);
                    InsertOrUpdateUserPhone(dbPhoneList, request.Phone2, 2, dbUser, transactionDateTime);
                    InsertOrUpdateUserPhone(dbPhoneList, request.Phone3, 3, dbUser, transactionDateTime);
                }

                if (result.IsNewUser)
                {
                    dbUser.CREATE_USERNAME = ValueOrDefault(request.ActionUsername);
                    dbUser.UPDATE_USERNAME = ValueOrDefault(request.ActionUsername);
                    dbUser.CREATE_DATE     = transactionDateTime;
                    dbUser.UPDATE_DATE     = transactionDateTime;

                    _context.TB_R_USER.Add(dbUser);
                }
                else
                {
                    dbUser.UPDATE_USERNAME = ValueOrDefault(request.ActionUsername);
                    dbUser.UPDATE_DATE     = transactionDateTime;
                    SetEntryStateModified(dbUser);
                }

                this.Save();

                if (!request.IsGroup)
                {
                    var _customerDataAccess = new CustomerDataAccess(_context);

                    CustomerEntity customerEntity;

                    bool isCreateCustomer;
                    if (result.IsNewUser)
                    {
                        isCreateCustomer = true;
                        customerEntity   = new CustomerEntity();
                    }
                    else
                    {
                        customerEntity = _customerDataAccess.GetCustomerByEmployeeID(dbUser.USER_ID);

                        // If Update but no have Customer for this user >> It will create
                        if (customerEntity == null)
                        {
                            customerEntity   = new CustomerEntity();
                            isCreateCustomer = true;
                        }
                        else
                        {
                            isCreateCustomer = false;
                        }
                    }

                    // Create/Update Customer for this user

                    if (isCreateCustomer)
                    {
                        // Create Customer
                        var _commonDataAccess = new CommonDataAccess(_context);
                        var subscriptionType  = _commonDataAccess.GetSubscriptTypeByCode(Constants.DefaultSubscriptionTypeForUser);

                        customerEntity.CustomerType  = Constants.CustomerType.Employee;
                        customerEntity.FirstNameThai = request.FirstName;
                        customerEntity.LastNameThai  = request.LastName;
                        customerEntity.SubscriptType = subscriptionType;
                        customerEntity.CardNo        = request.EmployeeCodeNew;
                        customerEntity.Email         = request.Email;
                        customerEntity.EmployeeId    = dbUser.USER_ID;

                        customerEntity.TitleThai    = new TitleEntity();
                        customerEntity.TitleEnglish = new TitleEntity();

                        customerEntity.CreateUser = new UserEntity()
                        {
                            UserId = actionUser.USER_ID
                        };
                        customerEntity.UpdateUser = new UserEntity()
                        {
                            UserId = actionUser.USER_ID
                        };

                        customerEntity.PhoneList = new List <PhoneEntity>();

                        if (!string.IsNullOrEmpty(request.Phone1))
                        {
                            customerEntity.PhoneList.Add(new PhoneEntity()
                            {
                                PhoneNo = request.Phone1
                            });
                        }

                        if (!string.IsNullOrEmpty(request.Phone2))
                        {
                            customerEntity.PhoneList.Add(new PhoneEntity()
                            {
                                PhoneNo = request.Phone2
                            });
                        }

                        if (!string.IsNullOrEmpty(request.Phone3))
                        {
                            customerEntity.PhoneList.Add(new PhoneEntity()
                            {
                                PhoneNo = request.Phone3
                            });
                        }

                        var isSaveCustomerSuccess = _customerDataAccess.SaveCustomer(customerEntity);

                        if (!isSaveCustomerSuccess)
                        {
                            return(new InsertOrUpdateUserResponse()
                            {
                                IsSuccess = false,
                                ErrorCode = "6",
                                ErrorMessage = "Cannot create customer for this user.",
                            });
                        }
                    }
                    else
                    {
                        customerEntity.FirstNameThai = request.FirstName;
                        customerEntity.LastNameThai  = request.LastName;
                        customerEntity.CardNo        = request.EmployeeCodeNew;
                        customerEntity.Email         = request.Email;

                        customerEntity.TitleThai    = new TitleEntity();
                        customerEntity.TitleEnglish = new TitleEntity();

                        customerEntity.CreateUser = new UserEntity()
                        {
                            UserId = actionUser.USER_ID
                        };
                        customerEntity.UpdateUser = new UserEntity()
                        {
                            UserId = actionUser.USER_ID
                        };

                        if (customerEntity.PhoneList == null)
                        {
                            customerEntity.PhoneList = new List <PhoneEntity>();
                        }

                        var phones = new List <string>();

                        if (!string.IsNullOrEmpty(request.Phone1))
                        {
                            phones.Add(request.Phone1);
                        }

                        if (!string.IsNullOrEmpty(request.Phone2))
                        {
                            phones.Add(request.Phone2);
                        }

                        if (!string.IsNullOrEmpty(request.Phone3))
                        {
                            phones.Add(request.Phone3);
                        }

                        if (phones.Count > customerEntity.PhoneList.Count)
                        {
                            var diff = (phones.Count - customerEntity.PhoneList.Count);
                            for (int i = 0; i < diff; i++)
                            {
                                customerEntity.PhoneList.Add(new PhoneEntity());
                            }
                        }
                        else if (phones.Count < customerEntity.PhoneList.Count)
                        {
                            var diff = (customerEntity.PhoneList.Count - phones.Count);
                            for (int i = 0; i < diff; i++)
                            {
                                customerEntity.PhoneList.RemoveAt(customerEntity.PhoneList.Count - 1);
                            }
                        }

                        for (int i = 0; i < phones.Count; i++)
                        {
                            customerEntity.PhoneList[i].PhoneNo = phones[i];
                        }

                        var isSaveCustomerSuccess = _customerDataAccess.SaveCustomer(customerEntity);

                        if (!isSaveCustomerSuccess)
                        {
                            return(new InsertOrUpdateUserResponse()
                            {
                                IsSuccess = false,
                                ErrorCode = "6",
                                ErrorMessage = "Cannot update customer for this user.",
                            });
                        }
                    }
                }

                result.IsSuccess = true;
                return(result);
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);

                return(new InsertOrUpdateUserResponse()
                {
                    IsSuccess = false,
                    ErrorCode = "1",
                    ErrorMessage = ex.Message,
                });
            }
            finally
            {
                _context.Configuration.AutoDetectChangesEnabled = false;
            }
        }
示例#5
0
文件: UserFacade.cs 项目: KKPBank/CSM
        public InsertOrUpdateUserResponse InsertOrUpdateUser(InsertOrUpdateUserRequest request)
        {
            try
            {
                if (request.ActionType != 1 && request.ActionType != 2)
                {
                    return(new InsertOrUpdateUserResponse()
                    {
                        IsSuccess = false,
                        ErrorCode = "2",
                        ErrorMessage = "Action Type must be 1 or 2. (1=Insert,2=Update)"
                    });
                }

                #region == Validate Require Field ==

                if (string.IsNullOrEmpty(request.WindowsUsername))
                {
                    return(GetReturnErrorRequireField("WindowUserName"));
                }

                if (string.IsNullOrEmpty(request.EmployeeCodeNew))
                {
                    return(GetReturnErrorRequireField("EmployeeCodeNew"));
                }

                if (request.ActionType == 2)
                {
                    if (string.IsNullOrEmpty(request.EmployeeCodeOld))
                    {
                        return(GetReturnErrorRequireField("EmployeeCodeOld"));
                    }
                }

                if (string.IsNullOrEmpty(request.FirstName))
                {
                    return(GetReturnErrorRequireField("FirstName"));
                }

                if (string.IsNullOrEmpty(request.Phone1) && !request.IsGroup)
                {
                    return(GetReturnErrorRequireField("Phone1", " (Phone1 เป็น Required Field เมื่อ IsGroup = FALSE)"));
                }

                if (string.IsNullOrEmpty(request.PositionCode))
                {
                    return(GetReturnErrorRequireField("PositionCode"));
                }

                if (string.IsNullOrEmpty(request.RoleSale))
                {
                    return(GetReturnErrorRequireField("RoleSale"));
                }

                if (string.IsNullOrEmpty(request.BranchCode))
                {
                    return(GetReturnErrorRequireField("BranchCode"));
                }

                if (string.IsNullOrEmpty(request.RoleCode))
                {
                    return(GetReturnErrorRequireField("RoleCode"));
                }

                #endregion

                #region == Validate Code ==

                _userDataAccess = new UserDataAccess(_context);

                int?supervisorUserId = null;

                if (!string.IsNullOrEmpty(request.SupervisorEmployeeCode))
                {
                    supervisorUserId = _userDataAccess.GetUserIdByEmployeeCode(request.SupervisorEmployeeCode);
                    if (!supervisorUserId.HasValue)
                    {
                        return(new InsertOrUpdateUserResponse()
                        {
                            IsSuccess = false,
                            ErrorCode = "3",
                            ErrorMessage = "ไม่พบ Employee Code ของ Supervisor ในฐานข้อมูล CSM"
                        });
                    }
                }

                int?roleId = _userDataAccess.GetRoleIdByRoleCode(request.RoleCode);
                if (!roleId.HasValue)
                {
                    return(new InsertOrUpdateUserResponse()
                    {
                        IsSuccess = false,
                        ErrorCode = "4",
                        ErrorMessage = "ไม่พบ Role Code ในฐานข้อมูล CSM",
                    });
                }

                var branchDataAccess = new BranchDataAccess(_context);
                int?branchId         = branchDataAccess.GetBranchIdByBranchCode(request.BranchCode);
                if (!branchId.HasValue)
                {
                    return(new InsertOrUpdateUserResponse()
                    {
                        IsSuccess = false,
                        ErrorCode = "5",
                        ErrorMessage = "ไม่พบ Branch Code ในฐานข้อมูล CSM",
                    });
                }

                #endregion

                return(_userDataAccess.InsertOrUpdateUser(request, supervisorUserId, roleId.Value, branchId.Value));
            }
            catch (Exception ex)
            {
                return(new InsertOrUpdateUserResponse()
                {
                    IsSuccess = false,
                    ErrorCode = "1",
                    ErrorMessage = ex.Message
                });
            }
        }
示例#6
0
文件: CSMService.cs 项目: KKPBank/SLM
        public static InsertOrUpdateUserResponse InsertOrUpdateUser(int actionType, StaffDataManagement data, string username)
        {
            _log.Info("===== [Start] Call WS Submit Staff Data to CSM: InsertOrUpdateUser =====");

            InsertOrUpdateUserRequest request = new InsertOrUpdateUserRequest();

            request.Header = new WebServiceHeader();
            request.Header.service_name = AppConstant.GetCSMServiceName;
            request.Header.user_name    = AppConstant.GetCSMUsername;
            request.Header.system_code  = AppConstant.GetCSMSystemCode;
            request.Header.password     = AppConstant.GetCSMPassword;
            request.Header.command      = "InsertOrUpdateUser";
            request.ActionType          = actionType;
            request.WindowsUsername     = data.Username;
            request.EmployeeCodeNew     = data.EmpCode;

            if (actionType == 2)
            {
                request.EmployeeCodeOld = data.EmpCodeOld;
            }

            if (!string.IsNullOrEmpty(data.StaffNameTH))
            {
                var index = data.StaffNameTH.IndexOf(" ");
                if (index != -1)
                {
                    request.FirstName = data.StaffNameTH.Substring(0, index).Trim();
                    request.LastName  = data.StaffNameTH.Substring(index, data.StaffNameTH.Length - index).Trim();
                }
                else
                {
                    request.FirstName = data.StaffNameTH;
                    request.LastName  = string.Empty;
                }
            }

            if (data.HeadStaffId.HasValue)
            {
                var headStaffEmployeeCode = SlmScr019Biz.GetStaffEmployeeCode(data.HeadStaffId.Value);
                request.SupervisorEmployeeCode = headStaffEmployeeCode;
            }

            if (!string.IsNullOrEmpty(data.UserType))
            {
                request.IsGroup = data.UserType.ToUpper() == "G";
            }

            request.Phone1 = data.TelNo;
            request.Phone2 = data.TelNo2;
            request.Phone3 = data.TelNo3;

            if (data.StaffTypeId.HasValue)
            {
                var staffTypeDesc = SlmScr019Biz.GetStaffTypeDesc(data.StaffTypeId.Value);
                request.RoleSale = staffTypeDesc;
            }

            //request.BranchCode = data.BranchCode;
            //get branchCodeNew for CSM
            request.BranchCode = SlmScr019Biz.GetBranchCodeNew(data.BranchCode);

            if (data.RoleServiceId.HasValue)
            {
                var roleServiceCode = SlmScr019Biz.GetRoleServiceCode(data.RoleServiceId.Value);
                request.RoleCode = roleServiceCode;
            }

            request.Status = (data.Is_Deleted ?? 0) == 0 ? 1 : 0;

            if (data.PositionId.HasValue)
            {
                var positionNameAbb = SlmScr019Biz.GetPositionNameAbb(data.PositionId.Value);
                request.PositionCode = positionNameAbb;
            }

            request.MarketingCode = data.MarketingCode;
            request.MarketingFlag = data.IsMarketing;
            request.Email         = data.StaffEmail;

            request.MarketingTeam = data.Team;

            if (data.DepartmentId.HasValue)
            {
                var departmentName = SlmScr019Biz.GetDepartmentName(data.DepartmentId.Value);
                request.Line = departmentName;
            }

            if (data.Level.HasValue)
            {
                var levelName = SlmScr019Biz.GetLevelName(data.Level.Value);
                request.Rank = levelName;
            }

            if (data.Category.HasValue)
            {
                var categoryName = SlmScr019Biz.GetCategoryName(data.Category.Value);
                request.EmployeeType = categoryName;
            }

            if (data.Host.HasValue)
            {
                var hostName = SlmScr019Biz.GetHostName(data.Host.Value);
                request.CompanyName = hostName;
            }

            if (data.TeamTelesale.HasValue)
            {
                var teamTelesaleName = SlmScr019Biz.GetTeamTelesaleName(data.TeamTelesale.Value);
                request.TelesaleTeam = teamTelesaleName;
            }

            request.ActionUsername = username;

            LogRequest_InsertOrUpdateUser(request);

            try
            {
                var start = DateTime.Now;
                _log.DebugFormat("Start Call InsertOrUpdateUser at {0:dd/MM/yyyy HH:mm:ss}", start);

                CSMUserServiceClient client = new CSMUserServiceClient();
                var response = client.InsertOrUpdateUser(request);

                var stop = DateTime.Now;
                _log.DebugFormat("End Call InsertOrUpdateUser at {0:dd/MM/yyyy HH:mm:ss} (Elapsed Time={1} seconds)", stop, stop.Subtract(start).TotalSeconds);

                if (response.IsSuccess)
                {
                    _log.Info("===== [End] Call WS Submit Staff Data to CSM: InsertOrUpdateUser (SUCCESS) =====");
                    _log.Debug("===== [START] Response Data =====");
                    _log.Debug("IsSuccess=" + response.IsSuccess);
                    _log.Debug("IsNewUser="******"ErrorCode=" + response.ErrorCode);
                    _log.Debug("ErrorMessage=" + response.ErrorMessage);
                    _log.Debug("===== [END] Response Data =====");
                }
                else
                {
                    _log.Error("===== [End] Call WS Submit Staff Data to CSM: InsertOrUpdateUser (FAIL) =====");
                    _log.Error("===== [START] Response Data =====");
                    _log.Error("IsSuccess=" + response.IsSuccess);
                    _log.Error("ErrorCode=" + response.ErrorCode);
                    _log.Error("ErrorMessage=" + response.ErrorMessage);
                    _log.Error("===== [END] Response Data =====");
                }

                //LogResponse_InsertOrUpdateUser(response);

                return(response);
            }
            catch (Exception ex)
            {
                _log.Error("===== [End] Call WS Submit Staff Data to CSM: InsertOrUpdateUser (FAIL with Exception) =====", ex);
                throw;
            }
        }
示例#7
0
        public InsertOrUpdateUserResponse InsertOrUpdateUser(InsertOrUpdateUserRequest request)
        {
            IUserFacade facade = new UserFacade();

            return(facade.InsertOrUpdateUser(request));
        }