Example #1
0
        public BaseResult AddContactor(int userId, Contactor contactor, int compId)
        {
            var rs = new BaseResult { State = false, Value = -1, Desc = "数据操作层初始化" };

            if (userId <= 0)
            {
                rs.Failed(-101, "userId无效");
                return rs;
            }

            if (contactor.Equals(null))
            {
                rs.Failed(-101, "contactor无效");
                return rs;
            }

            _desc = "某个终端客户添加一个联系人,含分组,联系方式";
            _procName = "UP_Addr_Contactor_AddContactor";
            _methodName = MethodBase.GetCurrentMethod().Name;

            _log = new LogBuilder
            {
                Method = string.Format("类[{0}]方法[{1}]", ClassName, _methodName),
                Desc = _desc,
                Database = _databaseName,
                StroreProcedure = _procName
            };
            _log.Append("userId", userId);

            try
            {
                //联系方式xml
                var wayClass = new XMLContactWayClass
                    {
                        XmlContactWay =
                            contactor.CWays.Select(
                                way => new XmlContactWay { ContactWayType = way.ContactWayType, Way = way.Way }).ToArray()
                    };
                var wayData = XmlHelper.XmlSerializer<XMLContactWayClass>(wayClass);
                wayData = wayData.Replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", "");

                //分组xml
                var groupClass = new XMLContactGroupClass
                    {
                        XmlContactGroup =
                            contactor.CGroups.Select(
                                @group => new XmlContactGroup { ContactorGroupID = @group.ContactorGroupID }).ToArray()
                    };
                var groupData = XmlHelper.XmlSerializer<XMLContactGroupClass>(groupClass);
                groupData = groupData.Replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", "");

                var parameters = new[]
                    {
                        _addrDatabase.MakeInParam("@userId", SqlDbType.Int, 4, userId),
                        _addrDatabase.MakeInParam("@CompID", SqlDbType.Int, 4, compId),
                        _addrDatabase.MakeInParam("@Name", SqlDbType.VarChar, 20, contactor.ContactorName),
                        _addrDatabase.MakeInParam("@ContactWay", SqlDbType.Xml, int.MaxValue, wayData),
                        _addrDatabase.MakeInParam("@ContactGroup", SqlDbType.Xml, int.MaxValue, groupData),
                        _addrDatabase.MakeInParam("@ConfParticipatePhoneNo",SqlDbType.VarChar,50,contactor.ConfParticipatePhoneNo)
                    };
                _addrDatabase.ExecuteProc(_procName, parameters, out _result);
                if (_result != 0)
                {
                    rs.Failed(-2, "todo");
                    return rs;
                }
            }
            catch (Exception ex)
            {
                rs.Failed(-1, ex.ToString());

                _log.Exception = string.Format("{0},发生异常:{1}", _desc, ex.Message);
                _log.Error();

                return rs;
            }
            finally
            {
                _addrDatabase.Close();//仅显式关闭链接,不做其它操作
            }
            rs.Success();
            return rs;
        }