public VenueHostHandler()
 {
     userDA      = UserDA.getInstance();
     addressDA   = AddressDA.getInstance();
     venueHostDA = VenueHostDA.getInstance();
     branchDA    = BranchDA.GetInstance();
 }
 /// <summary>
 /// 创建Company信息
 /// </summary>
 public static int InsertCompany(Company entity)
 {
     CheckCompany(entity, true);
     entity.SysNo = CompanyDA.InsertCompany(entity);
     AddressDA.CreateRootAddress(entity.SysNo);
     return(entity.SysNo);
 }
 //Will be only one instance
 public static AddressDA getInstance()
 {
     if (instance == null)
     {
         instance = new AddressDA();
     }
     return(instance);
 }
 public static void EditAddress(Address entity)
 {
     CheckAddress(entity);
     if (entity.SysNo > 0)
     {
         var o = AddressDA.LoadAddress(entity.SysNo);
         if (o == null || o.CompanySysNo != entity.CompanySysNo)
         {
             return;
         }
         Address parent = o.ParentSysNo.GetValueOrDefault() <= 0 ? null : AddressDA.LoadAddress(o.ParentSysNo.Value);
         entity.PathName = entity.Name;
         if (parent != null)
         {
             string parentPathName = parent.PathName;
             if (parent.ParentSysNo.GetValueOrDefault() == 0)
             {
                 parentPathName = parent.Name;
             }
             entity.PathName = parentPathName + ">" + entity.Name;
             //  entity.AreaSysNo = 0;
         }
         entity.ParentSysNo = o.ParentSysNo;
         AddressDA.UpdateAddress(entity);
     }
     else
     {
         string  code             = "";
         int     parentSysNo      = entity.ParentSysNo.GetValueOrDefault();
         string  beginAddressCode = AddressDA.GetChildrenMaxCode(entity.CompanySysNo, parentSysNo);
         Address parent           = parentSysNo <= 0 ? null : AddressDA.LoadAddress(parentSysNo);
         if (parentSysNo > 0 && (parent == null || parent.CompanySysNo != entity.CompanySysNo))
         {
             throw new BusinessException("父级节点不存在,请选择正确的父级节点。");
         }
         if (string.IsNullOrWhiteSpace(beginAddressCode))
         {
             code = parent == null ? "10" : (parent.Code + "00");
         }
         else
         {
             code = GenerateCode(beginAddressCode, beginAddressCode.Length, 3);
         }
         entity.Code     = code;
         entity.PathName = entity.Name;
         if (parent != null)
         {
             string parentPathName = parent.PathName;
             if (parent.ParentSysNo.GetValueOrDefault() == 0)
             {
                 parentPathName = parent.Name;
             }
             entity.PathName = parentPathName + ">" + entity.Name;
             // entity.AreaSysNo = 0;
         }
         entity.SysNo = AddressDA.InsertAddress(entity);
     }
 }
        /// <summary>
        /// 更新Company信息
        /// </summary>
        public static void UpdateCompany(Company entity)
        {
            CheckCompany(entity, false);
            Company company = CompanyDA.LoadCompany(entity.SysNo);

            if (company == null)
            {
                throw new BusinessException("查找不到企业");
            }
            CompanyDA.UpdateCompany(entity);
            AddressDA.CreateRootAddress(entity.SysNo);
        }
Exemple #6
0
 public static void InsertAddressManager(List <int> users, string code, int companySysNo)
 {
     using (ITransaction transaction = TransactionManager.Create())
     {
         AddressDA.DeleteAddressManagerByCode(code, companySysNo);
         if (users != null && users.Count > 0)
         {
             AddressDA.InsertAddressManager(users, code, companySysNo);
         }
         transaction.Complete();
     }
 }
Exemple #7
0
 public static void EditAddress(Address entity)
 {
     CheckAddress(entity);
     if (entity.SysNo > 0)
     {
         AddressDA.UpdateAddress(entity);
     }
     else
     {
         AddressDA.InsertAddress(entity);
     }
 }
        /// <summary>
        /// 删除Address信息
        /// </summary>
        public static bool DeleteAddress(int companySysNo, int sysNo, bool isDeleteMoreNode = true)
        {
            Address addInfo = AddressDA.LoadAddress(sysNo);

            if (addInfo == null)
            {
                return(true);
            }
            if (companySysNo > 0 && addInfo.CompanySysNo != companySysNo)
            {
                return(true);
            }

            return(AddressDA.DeleteAddress(sysNo, isDeleteMoreNode));
        }
        [HttpPost] //Insert to Database
        public IHttpActionResult Post([FromBody] Contact postContact)
        {
            ContactDA.read();
            if (postContact != null)
            {
                Country country   = null;
                bool    storeData = true;
                foreach (var item in CountryDA.CtryList)
                {
                    if (Convert.ToString(item.CountryName).ToLower() == postContact.Address.Country.CountryName.ToLower())
                    {
                        country   = item;
                        storeData = false;
                    }
                }
                if (storeData)
                {
                    country             = new Country();
                    country.CountryName = postContact.Address.Country.CountryName;
                    country.CountryCode = postContact.Address.Country.CountryCode;
                    //===============================================
                    //DATA ACCESS METHOD
                    CountryDA.insert(country);
                    //===============================================
                }
                Address a = new Address(postContact.Address.AddressST, postContact.Address.City, postContact.Address.State, postContact.Address.ZipCode, country.CountryID, country);
                AddressDA.insert(a);
                Contact con = new Contact(
                    postContact.FName,
                    postContact.LName,
                    postContact.Age,
                    postContact.Gender,
                    postContact.Email,
                    a.AddressID,
                    postContact.PhoneNumber,
                    a);
                ContactDA.insert(con);

                return(Ok("Contact Added."));
            }
            else
            {
                return(BadRequest());
            }
        }
        public static SmokeMap GetAddressMapSmokes(int companySysNo, int addressId)
        {
            var model = new SmokeMap();

            model.AddressNo   = addressId;
            model.AddressMaps = AddressMapDA.QueryAddressMapList(new AddressMapFilter {
                AddressSysNo = addressId, PageSize = 100000
            }).data;

            //标记点分两种 烟感器 和 下级地址
            model.Smokes  = new List <AddressMapMarker>();
            model.Markers = new List <AddressMapMarker>();
            var smokes = SmokeDetectorDA.GetSmokeDetectorByAddressSysNo(companySysNo, new List <int> {
                addressId
            });

            if (smokes != null)
            {
                smokes.ForEach(a =>
                {
                    model.Smokes.Add(new AddressMapMarker {
                        SysNo = a.SysNo, Name = string.IsNullOrEmpty(a.Position) ? a.Code : a.Position, Type = AddressMapMarkerType.SmokeDetector,
                    });
                });
            }

            var address = AddressDA.GetTopLevelChildren(addressId);

            if (address != null)
            {
                address.ForEach(a =>
                {
                    model.Smokes.Add(new AddressMapMarker {
                        SysNo = a.SysNo, Name = a.Name, Type = AddressMapMarkerType.Address,
                    });
                });
            }

            return(model);
        }
 private static void BuildAddSaveChildrenAddress(List <Address> pAddList, AddressNamePattern childPattern, int userSysNo, string userName)
 {
     if (childPattern == null)
     {
         return;
     }
     foreach (var p in pAddList)
     {
         if (p.SysNo < 1)
         {
             continue;
         }
         //p.EditUserName 中暂存了子节点最大的编码
         List <Address> addList = BuildAddress(childPattern, p, p.EditUserName);
         AddressDA.InsertAddress(p.CompanySysNo, p.SysNo, ref addList, userSysNo, userName);
         if (childPattern.ChildPattern != null)
         {
             childPattern.ChildPattern.CompanySysNo = childPattern.CompanySysNo;
         }
         BuildAddSaveChildrenAddress(addList, childPattern.ChildPattern, userSysNo, userName);
     }
 }
Exemple #12
0
 /// <summary>
 /// 更新Address信息
 /// </summary>
 public static void UpdateAddress(Address entity)
 {
     CheckAddress(entity);
     AddressDA.UpdateAddress(entity);
 }
Exemple #13
0
        public static string GenerateInvoiceExcelReport(ExternalInvoice inv, int currentUserClientId, string subFolder, bool deleteWorkDir, ref string alert)
        {
            //Output Table - contains all types of usage
            var usage = inv.Usage;

            // point to template files
            string fileName     = Utility.GetRequiredAppSetting("Invoice_Template");
            string templatePath = GetTemplatePath(fileName);
            string workPathDir  = GetWorkPath(currentUserClientId);

            if (!string.IsNullOrEmpty(subFolder))
            {
                workPathDir = Path.Combine(workPathDir, subFolder);
            }

            // Delete old work files
            // need to check and see if any old files are left behind
            // remember, WorkDir always includes the ClientID
            if (!Directory.Exists(GetWorkPath(currentUserClientId)))
            {
                Directory.CreateDirectory(GetWorkPath(currentUserClientId));
            }

            if (deleteWorkDir)
            {
                ClearWorkDirectory(GetWorkPath(currentUserClientId));
            }

            // this is (possibly) a sub folder of WorkDir
            // if subFolder is empty then subPath is the same as ExcelUtility.WorkPath and we already checked to see if that exists
            if (!string.IsNullOrEmpty(subFolder))
            {
                if (!Directory.Exists(workPathDir))
                {
                    Directory.CreateDirectory(workPathDir);
                }
            }

            // Write to excel
            int    attempts     = 0;
            string orgName      = inv.Header.OrgName;
            string acctName     = inv.Header.AccountName;
            string workFileName = EnsureFileNameIsValid(orgName + " (" + acctName + ") " + inv.StartDate.ToString("yyyy-MM") + Path.GetExtension(fileName));
            string workFilePath = Path.Combine(workPathDir, workFileName);
            string errmsg       = string.Empty;

            while (!File.Exists(workFilePath) && attempts < 10)
            {
                try
                {
                    File.Copy(templatePath, workFilePath, true);
                }
                catch (Exception ex)
                {
                    //I only care about the last one
                    errmsg = ex.Message;
                }
                attempts += 1;
            }

            if (File.Exists(workFilePath))
            {
                using (var mgr = NewExcelManager())
                {
                    mgr.OpenWorkbook(workFilePath);
                    mgr.SetActiveWorksheet("Invoice");

                    //show invoice date
                    mgr.SetCellTextValue("F4", DateTime.Now.ToString("MMMM dd, yyyy"));

                    DataTable dtAddress = AddressDA.GetAddressByAccountID(inv.Header.AccountID);
                    foreach (DataRow drAddr in dtAddress.Rows)
                    {
                        int startRow = (drAddr.Field <string>("AddrType") == "Billing") ? 7 : 13;
                        mgr.SetCellTextValue($"C{startRow}", inv.Header.OrgName);
                        mgr.SetCellTextValue($"C{startRow + 1}", drAddr.Field <string>("InternalAddress"));
                        mgr.SetCellTextValue($"C{startRow + 2}", drAddr.Field <string>("StrAddress1"));
                        mgr.SetCellTextValue($"C{startRow + 3}", drAddr.Field <string>("StrAddress2"));
                        mgr.SetCellTextValue($"C{startRow + 4}", drAddr.Field <string>("City") + ", " + drAddr.Field <string>("State") + " " + drAddr.Field <string>("Zip"));
                    }

                    //invoice number that needs to be entered
                    mgr.SetCellTextValue("E12", inv.Header.InvoiceNumber);
                    mgr.SetCellTextValue("I14", inv.Header.DeptRef);

                    //now print charges
                    int    r           = 21;
                    double totalCharge = usage.Sum(x => x.Cost);

                    foreach (var item in usage)
                    {
                        if (item.Cost != 0)
                        {
                            mgr.SetCellTextValue($"C{r}", inv.StartDate.ToString("MM/yyyy"));
                            mgr.SetCellTextValue($"D{r}", item.Description.Replace("'", "''"));
                            mgr.SetCellNumberValue($"H{r}", item.Quantity);
                            mgr.SetCellNumberValue($"I{r}", item.Cost);
                            r += 1;
                        }
                    }

                    mgr.SaveAs(workFilePath);
                }
            }
            else
            {
                alert        = "Unable to create Excel file, copying template failed: " + errmsg;
                workFilePath = string.Empty;
            }

            return(workFilePath);
        }
 public static void CreateRootAddress(int companySysNo)
 {
     AddressDA.CreateRootAddress(companySysNo);
 }
Exemple #15
0
        public ActionResult AddSmokeDetector(SmokeDetector entity)
        {
            long deviceCode = 0;

            long.TryParse(entity.Code, out deviceCode);
            if (deviceCode <= 0)
            {
                return(Json(new AjaxResult()
                {
                    Success = false, Message = "请扫描正确的设备二维码。"
                }));
            }
            //if (curentUser.UserType != UserType.Installer)
            //{
            //    return Json(new AjaxResult() { Success = false, Message = "您不是管理员,请绑定管理员账号。" });
            //}
            //if ((entity.AddressSysNo == null || entity.AddressSysNo <= 0) && (entity.Memo == "" || entity.Memo == null))
            //{
            //    return Json(new AjaxResult() { Success = false, Message = "请选择详细地址或者填写备注。" });
            //}
            if ((!entity.AddressSysNo.HasValue || entity.AddressSysNo <= 0) && string.IsNullOrWhiteSpace(entity.Position))
            {
                return(Json(new AjaxResult()
                {
                    Success = false, Message = "请选择地址或填写设备具体位置。"
                }));
            }
            Address address = AddressDA.LoadAddress(entity.AddressSysNo.GetValueOrDefault());

            if (address == null)
            {
                return(Json(new AjaxResult()
                {
                    Success = false, Message = "位置信息错误,请重新选择后再试。"
                }));
            }

            entity.AddressCode = address.Code;
            entity.AddressName = address.PathName;
            if ((address.ParentSysNo == 0 || address.ParentSysNo == null) && (address.PathName == "" || address.PathName == null))
            {
                entity.AddressName = address.Name;
            }
            entity.Status = SmokeDetectorStatus.Offline;
            if (curentUser.UserType == UserType.Installer)
            {
                entity.InstallerSysNo = curentUser.ManagerSysNo;
            }
            else
            {
                entity.InstallerSysNo = -curentUser.UserSysNo;
            }

            entity.InstallerName = HttpUtility.UrlDecode(curentUser.UserID);
            entity.InUserSysNo   = curentUser.UserSysNo;
            entity.InUserName    = HttpUtility.UrlDecode(curentUser.UserID);
            SmokeDetector     smoke      = SmokeDetectorServices.IsUniquenessCode(entity.Code);
            SystemUserService service    = new SystemUserService();
            SystemUser        systemuser = service.LoadSystemUser(curentUser.ManagerSysNo.GetValueOrDefault(), ConstValue.ApplicationID);

            if (systemuser == null)
            {
                UserMgr.Logout();
                return(Json(new AjaxResult()
                {
                    Success = false, Message = "登录超时,请退出公众号重新进入。"
                }));
            }
            //if (smoke != null && smoke.CompanySysNo != systemuser.MasterSysNo)
            //{
            //    return Json(new AjaxResult() { Success = false, Message = "设备已安装,不能再安装。" });
            //}
            //else
            if (smoke != null)
            {
                if (smoke.Status == SmokeDetectorStatus.Delete)
                {
                    entity.Status = SmokeDetectorStatus.Offline;
                }
                else
                {
                    entity.Status = smoke.Status;
                    if (smoke.InstallerSysNo <= 0)
                    {
                        if (smoke.InstallerSysNo != -curentUser.UserSysNo)
                        {
                            return(Json(new AjaxResult()
                            {
                                Success = false, Message = "设备已安装,不能再安装。"
                            }));
                        }
                    }
                    else
                    {
                        if (!(smoke.CompanySysNo == systemuser.MasterSysNo && curentUser.UserType == UserType.Installer))
                        {
                            return(Json(new AjaxResult()
                            {
                                Success = false, Message = "设备已安装,不能再安装。"
                            }));
                        }
                    }
                };
                CreateDeviceRequest reques = new CreateDeviceRequest()
                {
                    IMei     = entity.Code,
                    IMsi     = entity.Code,
                    Desc     = "测试设备",
                    IsOnLine = 1,
                    Observe  = 1,
                    Protocol = "LWM2M",
                    Title    = entity.Code,
                    Tags     = entity.Code + "," + entity.Code
                };
                CreateDeviceResponse result = ONENETService.CreateDevice(reques);
                if (result.IsSuccess)
                {
                    entity.DeviceId = result.DeviceId;
                }
                else
                {
                    entity.DeviceId = smoke.DeviceId;
                }

                entity.SysNo = smoke.SysNo;
                SmokeDetectorServices.UpdateSmokeDetector(entity);
                if (curentUser.UserType != UserType.Installer)
                {
                    Logger.WriteLog("Code:" + entity.Code);
                    BindingDevicesApi(entity.Code);
                }
                return(Json(new AjaxResult()
                {
                    Success = true, Message = "修改成功!"
                }));
                //}
                //else
                //{
                //    return Json(new AjaxResult() { Success = false, Message = "系统异常!" });
                //}
            }
            else
            {
                CreateDeviceRequest reques = new CreateDeviceRequest()
                {
                    IMei     = entity.Code,
                    IMsi     = entity.Code,
                    Desc     = "测试设备",
                    IsOnLine = 1,
                    Observe  = 1,
                    Protocol = "LWM2M",
                    Title    = entity.Code,
                    Tags     = entity.Code + "," + entity.Code
                };
                CreateDeviceResponse result = ONENETService.CreateDevice(reques);
                if (result.IsSuccess)
                {
                    entity.DeviceId = result.DeviceId;
                }
                int i = SmokeDetectorServices.InsertSmokeDetector(entity);
                SmokeDetectorStatusLog statusLog = new SmokeDetectorStatusLog()
                {
                    Status            = entity.Status,
                    BeginTime         = DateTimeHelper.GetTimeZoneNow(),
                    ReceivedJsonData  = "",
                    SmokeDetectorCode = entity.Code
                };
                if (curentUser.UserType != UserType.Installer)
                {
                    Logger.WriteLog("Code:" + entity.Code);
                    BindingDevicesApi(entity.Code);
                }

                return(Json(new AjaxResult()
                {
                    Success = true, Message = "添加成功!"
                }));
            }
        }
Exemple #16
0
 public static List <AddressManager> LoadAddressManagerByCode(string code, int companySysNo)
 {
     return(AddressDA.LoadAddressManagerByCode(code, companySysNo));
 }
        public static bool CreateAddress(AddressNamePattern pattern, int userSysNo, string userName, out string message)
        {
            message = null;
            bool result = CheckAddressPattern(pattern, out message);

            if (!result)
            {
                return(false);
            }
            int companySysNo = pattern.CompanySysNo;

            if (companySysNo <= 0)
            {
                message = "客户信息不存在,请选择客户后再创建地址信息。";
                return(false);
            }

            object locker = GetCompanyAddressCreateLockerByKey(companySysNo);

            lock (locker)
            {
                if (CompanyAddressCreateCount.ContainsKey(companySysNo))
                {
                    CompanyAddressCreateCount[companySysNo] = CompanyAddressCreateCount[companySysNo] + 1;
                }
                else
                {
                    CompanyAddressCreateCount.Add(companySysNo, 1);
                }
                try
                {
                    Address parent = AddressDA.LoadAddress(pattern.ParentSysNo);

                    if (parent == null || parent.CompanySysNo != companySysNo)
                    {
                        message = "按规则创建地址时,请指定父级地址。如果是根地址,则只能单个创建。";
                        return(false);
                    }

                    string beginAddressCode = AddressDA.GetChildrenMaxCode(companySysNo, pattern.ParentSysNo);

                    List <Address> addList = BuildAddress(pattern, parent, beginAddressCode);

                    AddressDA.InsertAddress(companySysNo, pattern.ParentSysNo, ref addList, userSysNo, userName);
                    if (pattern.ChildPattern != null)
                    {
                        pattern.ChildPattern.CompanySysNo = companySysNo;
                    }
                    Task task = new Task(() =>
                    {
                        var aList = addList;
                        var p     = pattern.ChildPattern;
                        var uno   = userSysNo;
                        var uname = userName;
                        BuildAddSaveChildrenAddress(aList, p, uno, uname);
                    });
                    task.Start();
                }
                finally
                {
                    CompanyAddressCreateCount[companySysNo] = CompanyAddressCreateCount[companySysNo] - 1;
                }
            }
            return(true);
        }
Exemple #18
0
 /// <summary>
 /// 加载客户除楼和房间号地址信息
 /// </summary>
 /// <param name="companuSysNo"></param>
 /// <returns></returns>
 public static List <Address> LoadCompanyAddress(int companySysNo)
 {
     return(AddressDA.LoadCompanyAddress(companySysNo));
 }
Exemple #19
0
 public static List <MapDataAddress> GetMapDataAddress(int companySysNo)
 {
     return(AddressDA.GetMapDataAddress(companySysNo));
 }
Exemple #20
0
 /// <summary>
 /// 分页查询Address信息
 /// </summary>
 public static QueryResult <Address> QueryAddressList(AddressFilter filter)
 {
     return(AddressDA.QueryAddressList(filter));
 }
Exemple #21
0
 /// <summary>
 /// 根据Code获取地址树
 /// </summary>
 /// <param name="addressCode"></param>
 /// <param name="companySysNo"></param>
 /// <returns></returns>
 public static List <Address> LoadAddressByAddressCode(string addressCode, int companySysNo)
 {
     return(AddressDA.LoadAddressByAddressCode(addressCode, companySysNo));
 }
Exemple #22
0
 /// <summary>
 /// 查询地址下级
 /// </summary>
 /// <param name="companySysNo"></param>
 /// <param name="code"></param>
 /// <returns></returns>
 public static List <Address> LoadSubsetAddressByAddressSysNo(int companySysNo, int addressSysNo)
 {
     return(AddressDA.LoadSubsetAddressByAddressSysNo(companySysNo, addressSysNo));
 }
Exemple #23
0
 /// <summary>
 /// 加载Address信息
 /// </summary>
 public static Address LoadAddress(int sysNo)
 {
     return(AddressDA.LoadAddress(sysNo));
 }
Exemple #24
0
 /// <summary>
 /// 创建Address信息
 /// </summary>
 public static int InsertAddress(Address entity)
 {
     CheckAddress(entity);
     return(AddressDA.InsertAddress(entity));
 }
Exemple #25
0
 /// <summary>
 /// 删除Address信息
 /// </summary>
 public static void DeleteAddress(int sysNo, bool isDeleteMoreNode = true)
 {
     AddressDA.DeleteAddress(sysNo, isDeleteMoreNode);
 }
Exemple #26
0
 public ParticipantHandler()
 {
     userDA        = UserDA.getInstance();
     addressDA     = AddressDA.getInstance();
     participantDA = ParticipantDA.getInstance();
 }