public void IntStringToTimeSpan()
 {
     Assert.AreEqual(TimeSpan.FromDays(122), ConvertUtil.GetTypedCellValue <TimeSpan>("122"));
 }
示例#2
0
 private void OnItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
 {
     DoClickEvent(ConvertUtil.ToString(e.Item.Tag));
 }
示例#3
0
        private void btnCommit_Click(object sender, EventArgs e)
        {
            ReturnDetailEntity selectDetail = SelectedDetail;

            if (selectDetail == null)
            {
                MsgBox.Warn("没有选中的行!");
                return;
            }
            if (string.IsNullOrEmpty(txtReturnQty.Text.Trim()))
            {
                MsgBox.Warn("退货数量不能为空!");
                txtReturnQty.Focus();
                return;
            }
            if (!ConvertUtil.IsDecimal(txtReturnQty.Text.Trim()))
            {
                MsgBox.Warn("退货数量必须是数字!");
                txtReturnQty.Focus();
                return;
            }
            if (ConvertUtil.ToDecimal(txtReturnQty.Text.Trim()) < 0)
            {
                MsgBox.Warn("退货数量不能小于0!");
                txtReturnQty.Focus();
                return;
            }
            if (ConvertUtil.ToString(listReturnUnit.EditValue) == string.Empty)
            {
                MsgBox.Warn("退货单位不能为空!");
                listReturnUnit.Focus();
                return;
            }
            try
            {
                decimal minReturnQty = 0;
                if (selectDetail.ReturnUnitCode == ConvertUtil.ToString(listReturnUnit.EditValue))
                {
                    minReturnQty = ConvertUtil.ToDecimal(txtReturnQty.Text.Trim());
                }
                else
                {
                    //castRate = returnDal.GetCastRateBySku(selectDetail.MaterialCode, selectDetail.SkuBarcode, selectDetail.UnitCode, minUnitCode);
                    minReturnQty = selectDetail.CastRate * ConvertUtil.ToDecimal(txtReturnQty.Text.Trim());
                }

                if (minReturnQty > selectDetail.MinPickQty - selectDetail.ReturnedQty)
                {
                    MsgBox.Warn("退货数量超出!");
                    txtReturnQty.Focus();
                    return;
                }

                selectDetail.ReturnQty      = minReturnQty;
                selectDetail.ReturnUnitName = selectDetail.ReturnUnitName;
                selectDetail.ReturnUnitCode = selectDetail.ReturnUnitCode;

                gvDetails.RefreshData();
                txtCrnAmount.Text = String.Format("{0:f2}", gridColumn9.SummaryItem.SummaryValue);
                this.isEdite      = true;
                btnClear_Click(null, null);
            }
            catch (Exception ex)
            {
                MsgBox.Warn(ex.Message);
                return;
            }
        }
示例#4
0
        public async Task <BackupResponseModel> CreateBackupFile(BackupRequestModel model)
        {
            Directory.CreateDirectory(_backupOptions.CurrentValue.BackupFolderPath);
            // Ensure a total number of objects less than MaximumObjects
            var appCount = model.Apps != null?model.Apps.Count() : 0;

            var standardCount = model.Standards != null?model.Standards.Count() : 0;

            var chartCount = model.Charts != null?model.Charts.Count() : 0;

            var dynamicCount = model.DynamicLists != null?model.DynamicLists.Count() : 0;

            var databaseCount = model.Databases != null?model.Databases.Count() : 0;

            var pageCount = model.Pages != null?model.Pages.Count() : 0;

            var totalBackupCount = appCount + standardCount + chartCount + dynamicCount + databaseCount + pageCount;

            if (totalBackupCount > _backupOptions.CurrentValue.MaximumObjects)
            {
                throw new BackupException(BackupErrorCodes.ReachMaximumBackupObjects);
            }
            var collectApp          = _appServiceProvider.GetAppsByIds(model.Apps);
            var collectStandards    = _standardServiceProvider.GetStandardComponentsByIds(model.Standards);
            var collectCharts       = _chartServiceProvider.GetChartsByIds(model.Charts);
            var collectDynamicLists = _dynamicListServiceProvider.GetDynamicListsByIds(model.DynamicLists);
            var collectDatabases    = _databaseServiceProvider.GetDatabaseConnectionsByIds(model.Databases);
            var collectPages        = _pageServiceProvider.GetPagesByIds(model.Pages);

            await Task.WhenAll(collectApp, collectStandards, collectCharts, collectDatabases, collectDynamicLists, collectPages);

            var backupFileModel = new BackupFlatternFileModel
            {
                TotalObjects  = totalBackupCount,
                ChainingFiles = new List <string>()
            };

            var backup = new Backup
            {
                Id             = DataUtil.GenerateUniqueId(),
                Name           = model.Name,
                Description    = model.Description,
                CreatedDate    = DateTime.UtcNow,
                Creator        = model.Creator,
                BackupElements = new BackupElements
                {
                    Apps         = model.Apps,
                    Charts       = model.Charts,
                    Databases    = model.Databases,
                    DynamicLists = model.DynamicLists,
                    Pages        = model.Pages,
                    Standards    = model.Standards
                }
            };

            backupFileModel.Backup = backup;

            // Write to file
            var fileName     = DateTime.UtcNow.Ticks.ToString();
            var jsonFilePath = !string.IsNullOrEmpty(_backupOptions.CurrentValue.BackupFolderPath) ? _backupOptions.CurrentValue.BackupFolderPath : Environment.CurrentDirectory;
            var jsonFileName = fileName + ".json";

            jsonFilePath = Path.Combine(jsonFilePath, fileName);
            Directory.CreateDirectory(jsonFilePath);

            if (collectApp.Result != null)
            {
                var jsonApps = ConvertUtil.SerializeObject(collectApp.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, APP_FILE)))
                {
                    sw.Write(jsonApps);
                }

                backupFileModel.ChainingFiles.Add(APP_FILE);
            }

            if (collectStandards.Result != null)
            {
                var jsonStandards = ConvertUtil.SerializeObject(collectStandards.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, STANDARD_FILE)))
                {
                    sw.Write(jsonStandards);
                }
                backupFileModel.ChainingFiles.Add(STANDARD_FILE);
            }

            if (collectDynamicLists.Result != null)
            {
                var jsonDynamicLists = ConvertUtil.SerializeObject(collectDynamicLists.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, DYNAMICLIST_FILE)))
                {
                    sw.Write(jsonDynamicLists);
                }
                backupFileModel.ChainingFiles.Add(DYNAMICLIST_FILE);
            }

            if (collectDatabases.Result != null)
            {
                var jsonDatabases = ConvertUtil.SerializeObject(collectDatabases.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, DATABASE_FILE)))
                {
                    sw.Write(jsonDatabases);
                }
                backupFileModel.ChainingFiles.Add(DATABASE_FILE);
            }

            if (collectCharts.Result != null)
            {
                var jsonCharts = ConvertUtil.SerializeObject(collectCharts.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, CHART_FILE)))
                {
                    sw.Write(jsonCharts);
                }
                backupFileModel.ChainingFiles.Add(CHART_FILE);
            }

            if (collectPages.Result != null)
            {
                var jsonPages = ConvertUtil.SerializeObject(collectPages.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, PAGE_FILE)))
                {
                    sw.Write(jsonPages);
                }
                backupFileModel.ChainingFiles.Add(PAGE_FILE);
            }

            var jsonFlattern = ConvertUtil.SerializeObject(backupFileModel, true);

            using (var sw = new StreamWriter(Path.Combine(jsonFilePath, jsonFileName)))
            {
                sw.Write(jsonFlattern);
            }

            ZipFile.CreateFromDirectory(jsonFilePath, Path.Combine(_backupOptions.CurrentValue.BackupFolderPath, fileName + ".zip"));

            // Store zip file into file server, allow to create zip file when downloading
            var uploadResponse = await _fileSeviceProvider
                                 .UploadFileAsync(
                Path.Combine(_backupOptions.CurrentValue.BackupFolderPath, fileName + ".zip"),
                model.Creator,
                true);

            backup.FileId          = uploadResponse.FileId;
            backup.DownloadableUrl = uploadResponse.DownloadableUrl;
            await _backupRepository.AddAsync(backup);

            return(new BackupResponseModel {
                DownloadableUrl = uploadResponse.DownloadableUrl
            });
        }
        public bool SaveDataToDB(ProjectAllocationFramework.Statues.ProgressChangedEventHandler OnProgress, List <StageEntity> entityList)
        {
            // The default database service is determined through configuration
            // and passed to the method as a parameter that can be generated
            // automatically through injection when the application initializes.
            if (entityList == null || entityList.Count == 0)
            {
                return(true);
            }

            bool result = false;


            int count = entityList.Count;

            using (DbConnection conn = db.CreateConnection())
            {
                conn.Open();
                DbTransaction trans = conn.BeginTransaction();

                try
                {
                    int i = 1;
                    foreach (StageEntity entity in entityList)
                    {
                        string strStageCode = ConvertUtil.ToString(entity.StageCode); //Stage Code
                        string strStageName = ConvertUtil.ToString(entity.StageName); //Stage Name
                        string strPercent   = ConvertUtil.ToString(entity.Percent);   //Percent
                        string strUser      = ConvertUtil.ToString(entity.User);      //User
                        int    intAction    = entity.Action;                          //Action

                        string sql = string.Empty;
                        if (intAction == 2)
                        {
                            sql = "DELETE FROM [Stage] WHERE [StageCode]=@StageCode";
                        }
                        else
                        {
                            intAction = 0;
                            sql       = "SELECT StageCode FROM [Stage] WHERE StageCode=@StageCode";
                            DbCommand cmd = DatabaseUtil.GetCommand(db.GetSqlStringCommand(sql));
                            cmd.Parameters.Clear();
                            db.AddInParameter(cmd, "StageCode", DbType.String, strStageCode);

                            using (IDataReader reader = db.ExecuteReader(cmd))
                            {
                                while (reader.Read())
                                {
                                    intAction = 1;
                                    break;
                                }
                            }

                            if (intAction == 0)
                            {
                                sql = "INSERT INTO [Stage](StageCode, StageName,Percent,Create_dt,Create_User,Update_dt,Update_User) VALUES (@StageCode, @StageName,@Percent,datetime(),@Create_User,datetime(),@Update_User)";
                            }
                            else if (intAction == 1)
                            {
                                sql = "UPDATE [Stage] SET [StageName] =@StageName,[Percent] =@Percent,[Update_dt] =datetime(),[Update_User] =@Update_User WHERE [StageCode]=@StageCode";
                            }
                        }

                        DbCommand userCommand = DatabaseUtil.GetCommand(db.GetSqlStringCommand(sql));
                        userCommand.Parameters.Clear();

                        db.AddInParameter(userCommand, "StageCode", DbType.String, strStageCode);
                        db.AddInParameter(userCommand, "StageName", DbType.String, strStageName);
                        db.AddInParameter(userCommand, "Percent", DbType.Double, strPercent);
                        db.AddInParameter(userCommand, "Create_User", DbType.String, strUser);
                        db.AddInParameter(userCommand, "Update_User", DbType.String, strUser);
                        db.AddInParameter(userCommand, "Action", DbType.Int32, intAction);

                        db.ExecuteNonQuery(userCommand, trans);

                        if (OnProgress != null)
                        {
                            string InfomationMessage = string.Format(ProjectAllocationResource.Message.Common_Master_Save_Info, i);
                            int    Percentage        = (int)(i * Constant.ProgressBarMaximum / count);

                            ProjectAllocationFramework.Statues.ProgressChangedEventArgs args = new ProjectAllocationFramework.Statues.ProgressChangedEventArgs(InfomationMessage, Percentage, null);
                            OnProgress(this, args);
                        }
                        //if success
                        entity.ReadOnly = true;
                        i++;
                    }

                    // Commit the transaction.
                    trans.Commit();

                    result = true;
                }
                catch
                {
                    // Roll back the transaction.
                    trans.Rollback();
                    throw;
                }
                conn.Close();

                return(result);
            }
        }
示例#6
0
 protected override void ReflectiveInit(object start, object end, object option)
 {
     _start = Convert.ToString(start) ?? string.Empty;
     _end   = Convert.ToString(end) ?? string.Empty;
     _style = ConvertUtil.ToEnum <StringTweenStyle>(option, StringTweenStyle.Default);
 }
示例#7
0
        public ActionResult Add(string key, int agencyId, Guid userId)
        {
            var model = new DN_Sale();
            var msg   = new JsonMessage(false, "Thêm mới dữ liệu thành công.");

            try
            {
                var lstproduct = Request["values-arr-product"];
                var dateE      = Request["DateEnd_"];
                var dateS      = Request["DateStart_"];
                var lstCate    = Request["ListCateId"];
                UpdateModel(model);
                model.IsDeleted  = false;
                model.IsShow     = true;
                model.AgencyId   = agencyId;
                model.IsAgency   = false;
                model.UserCreate = userId;
                model.DateEnd    = !string.IsNullOrEmpty(dateE)
                    ? ConvertUtil.ToDateTime(dateE).TotalSeconds()
                    : DateTime.Now.TotalSeconds();
                model.DateStart = !string.IsNullOrEmpty(dateS)
                    ? ConvertUtil.ToDateTime(dateS).TotalSeconds()
                    : DateTime.Now.TotalSeconds();
                if ((!model.QuantityCode.HasValue || model.QuantityCode == 0) && model.IsAll != true && (!model.TotalOrder.HasValue || model.TotalOrder == 0))
                {
                    if (string.IsNullOrEmpty(lstCate))
                    {
                        model.Categories = _da.GetListCateByArrId(lstCate);
                        model.IsAll      = false;
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(lstproduct))
                        {
                            var lstInt = FDIUtils.StringToListInt(lstproduct);
                            model.Shop_Product_Detail = _da.GetListIntProductByArrId(lstInt);
                            model.IsAll = false;
                        }
                    }
                }
                else
                {
                    model.IsAll = false;
                }
                if (model.IsAll == true)
                {
                    model.QuantityCode = 0;
                }
                if (model.QuantityCode > 0)
                {
                    model.TotalOrder = 0;
                }
                if (model.TotalOrder > 0)
                {
                    model.QuantityCode = 0;
                }
                _da.Add(model);
                _da.Save();
            }
            catch (Exception ex)
            {
                msg.Erros   = true;
                msg.Message = "Dữ liệu chưa được thêm mới";
                Log2File.LogExceptionToFile(ex);
            }
            return(Json(msg, JsonRequestBehavior.AllowGet));
        }
        public void DoubleToNullableInt()
        {
            var result = ConvertUtil.GetTypedCellValue <int?>(2D);

            Assert.AreEqual(2, result);
        }
        public static void SetPropertyValue(SerializedProperty prop, object value)
        {
            if (prop == null)
            {
                throw new System.ArgumentNullException("prop");
            }

            switch (prop.propertyType)
            {
            case SerializedPropertyType.Integer:
                prop.intValue = ConvertUtil.ToInt(value);
                break;

            case SerializedPropertyType.Boolean:
                prop.boolValue = ConvertUtil.ToBool(value);
                break;

            case SerializedPropertyType.Float:
                prop.floatValue = ConvertUtil.ToSingle(value);
                break;

            case SerializedPropertyType.String:
                prop.stringValue = ConvertUtil.ToString(value);
                break;

            case SerializedPropertyType.Color:
                prop.colorValue = ConvertUtil.ToColor(value);
                break;

            case SerializedPropertyType.ObjectReference:
                prop.objectReferenceValue = value as Object;
                break;

            case SerializedPropertyType.LayerMask:
                prop.intValue = (value is LayerMask) ? ((LayerMask)value).value : ConvertUtil.ToInt(value);
                break;

            case SerializedPropertyType.Enum:
                //prop.enumValueIndex = ConvertUtil.ToInt(value);
                prop.SetEnumValue(value);
                break;

            case SerializedPropertyType.Vector2:
                prop.vector2Value = ConvertUtil.ToVector2(value);
                break;

            case SerializedPropertyType.Vector3:
                prop.vector3Value = ConvertUtil.ToVector3(value);
                break;

            case SerializedPropertyType.Vector4:
                prop.vector4Value = ConvertUtil.ToVector4(value);
                break;

            case SerializedPropertyType.Rect:
                prop.rectValue = (Rect)value;
                break;

            case SerializedPropertyType.ArraySize:
                prop.arraySize = ConvertUtil.ToInt(value);
                break;

            case SerializedPropertyType.Character:
                prop.intValue = ConvertUtil.ToInt(value);
                break;

            case SerializedPropertyType.AnimationCurve:
                prop.animationCurveValue = value as AnimationCurve;
                break;

            case SerializedPropertyType.Bounds:
                prop.boundsValue = (Bounds)value;
                break;

            case SerializedPropertyType.Gradient:
                throw new System.InvalidOperationException("Can not handle Gradient types.");
            }
        }
 public void BadTextToInt()
 {
     ConvertUtil.GetTypedCellValue <int>("text1");
 }
        public void TextToInt()
        {
            var result = ConvertUtil.GetTypedCellValue <int>("204");

            Assert.AreEqual(204, result);
        }
 public void BoolToDouble()
 {
     Assert.AreEqual(1d, ConvertUtil.GetTypedCellValue <double>(true));
     Assert.AreEqual(0d, ConvertUtil.GetTypedCellValue <double>(false));
 }
 public void BoolToDecimal()
 {
     Assert.AreEqual(1m, ConvertUtil.GetTypedCellValue <decimal>(true));
     Assert.AreEqual(0m, ConvertUtil.GetTypedCellValue <decimal>(false));
 }
 public void BoolToInt()
 {
     Assert.AreEqual(1, ConvertUtil.GetTypedCellValue <int>(true));
     Assert.AreEqual(0, ConvertUtil.GetTypedCellValue <int>(false));
 }
示例#15
0
        /// <summary>
        /// 生成装车任务
        /// </summary>
        private void btnCreateTask_Click(object sender, EventArgs e)
        {
            try
            {
                using (WaitDialogForm waitDialog = new WaitDialogForm("提示", "正在存储装车信息,请稍后..."))
                {
                    int    outType = 0;
                    object obj     = null;

                    Dictionary <string, object> settings = GlobeSettings.SystemSettings;
                    if (settings.ContainsKey("出库方式") && settings["出库方式"].ToString() == "1")
                    {
                        outType = 1;
                    }

                    #region
                    if (!IsOldMap)//表示调用李奇才的方法
                    {
                        if ((obj = this.InvokeScript("submit")) == null)
                        {
                            MsgBox.Warn("未找到已排序订单!");
                            return;
                        }
                    }
                    else
                    {
                        if ((obj = this.InvokeScript(this.Submit)) == null)
                        {
                            MsgBox.Warn("未找到已排序订单!");
                            return;
                        }
                    }
                    #endregion

                    List <SortMapReceiveDataEntity> list = JsonConvert.DeserializeObject <List <SortMapReceiveDataEntity> >(obj.ToString());
                    if (list == null || list.Count == 0)
                    {
                        MsgBox.Warn("未找到已排序订单");
                        return;
                    }
                    if (list.Count == this._list.Count ||
                        MsgBox.AskOK("还有未排序的订单,是否继续提交?") == DialogResult.OK)
                    {
                        LoadingHeaderEntity header = new LoadingHeaderEntity()
                        {
                            WarehouseCode = GlobeSettings.LoginedUser.WarehouseCode,
                            LoadingNO     = outType == 1 ? this._loadingNo : DateTime.Now.ToString("yyyyMMddHHmmssms"),
                            VehicleID     = this._vehicle == null ? 0 : this._vehicle.ID,
                            UserName      = GlobeSettings.LoginedUser.UserName,
                            UpdateDate    = DateTime.Now
                        };
                        List <LoadingDetailEntity> details = new List <LoadingDetailEntity>();
                        foreach (SortMapReceiveDataEntity data in list)
                        {
                            SOHeaderEntity soHeader = this._list.Find(new Predicate <SOHeaderEntity>(
                                                                          (item) =>
                            {
                                return(item.BillNO == data.orderId);
                            }));
                            if (soHeader == null)
                            {
                                continue;
                            }
                            details.Add(new LoadingDetailEntity()
                            {
                                LoadingNO     = header.LoadingNO,
                                BillNO        = soHeader.BillNO,
                                InVehicleSort = ConvertUtil.ToInt(data.paixu),
                                UpdateDate    = DateTime.Now,
                                BillID        = soHeader.BillID
                            });
                        }
                        List <LoadingUserEntity> users = new List <LoadingUserEntity>();
                        if (this._loadingUsers != null && this._loadingUsers.Count > 0)
                        {
                            foreach (UserEntity item in this._loadingUsers)
                            {
                                users.Add(new LoadingUserEntity()
                                {
                                    LoadingNO  = header.LoadingNO,
                                    UserName   = item.UserName,
                                    UserCode   = item.UserCode,
                                    UpdateDate = DateTime.Now,
                                    TaskType   = "145"
                                });
                            }
                        }

                        List <LoadingUserEntity> transUsers = new List <LoadingUserEntity>();
                        if (this._transUsers != null && this._transUsers.Count > 0)
                        {
                            foreach (UserEntity item in this._transUsers)
                            {
                                transUsers.Add(new LoadingUserEntity()
                                {
                                    LoadingNO  = header.LoadingNO,
                                    UserName   = item.UserName,
                                    UserCode   = item.UserCode,
                                    UpdateDate = DateTime.Now,
                                    TaskType   = "148"
                                });
                            }
                        }

                        header.Details = details;
                        users.AddRange(transUsers);
                        header.Users = users;
                        // 存储排序记录
                        CreateLoadingInfo(header);
                        //返回没有排序的订单
                        if (!string.IsNullOrEmpty(this._loadingNo))
                        {
                            List <SortMapReceiveDataEntity> billsUnSelected = GetLoadingNOUnSelected(this._loadingNo);
                            if (billsUnSelected.Count > 0)
                            {
                                foreach (SortMapReceiveDataEntity item in billsUnSelected)
                                {
                                    RequestPackage request = new RequestPackage("removeOrderid.php");
                                    request.Method = EHttpMethod.Get.ToString();
                                    request.Params.Add("orderid", item.orderId);

                                    ResponsePackage response = _httpContext.Request(request);

                                    if (response.Result == EResponseResult.成功)
                                    {
                                        string jsonData = Encoding.Default.GetString(response.ResultData as byte[]);
                                        if (jsonData == "NULL")
                                        {
                                            MsgBox.Warn("网络环境异常,请检查网络!");
                                        }
                                    }
                                }
                            }
                        }


                        ///装车重新分任务
                        foreach (SortMapReceiveDataEntity data in list)
                        {
                            SOHeaderEntity soHeader = this._list.Find(new Predicate <SOHeaderEntity>(
                                                                          (item) =>
                            {
                                return(item.BillNO == data.orderId);
                            }));
                            CreateTask(soHeader.BillID, "148");
                        }
                        AutoAssignTask();
                        this.DialogResult = DialogResult.OK;
                    }
                }
            }
            catch (Exception ex)
            {
                MsgBox.Err("错误:" + ex.Message);
            }
        }
示例#16
0
        public async Task <PackageResponseModel> Package(PackageRequestModel package)
        {
            var app = await _appRepository.GetOneAsync(package.AppId);

            var collectLocales      = _localizationProvider.GetByAppId(app.Id);
            var collectStandards    = _standardServiceProvider.GetByAppId(app.Id);
            var collectCharts       = _chartServiceProvider.GetByAppId(app.Id);
            var collectDynamicLists = _dynamicListServiceProvider.GetByAppId(app.Id);
            var collectPages        = _pageServiceProvider.GetByAppId(app.Id);
            await Task.WhenAll(collectLocales, collectStandards, collectCharts, collectDynamicLists, collectPages);

            var appPackpageFlattern = new AppPackageFlatternModel
            {
                App               = app,
                Description       = package.Description,
                PackagedDate      = DateTime.UtcNow,
                Creator           = package.Creator,
                TotalCharts       = collectCharts.Result?.Count(),
                TotalDynamicLists = collectDynamicLists.Result?.Count(),
                TotalStandards    = collectStandards.Result?.Count(),
                TotalLocales      = collectLocales.Result?.Count(),
                TotalPages        = collectPages.Result?.Count(),
                ChainingFiles     = new List <string>()
            };

            var fileName     = DateTime.UtcNow.Ticks.ToString();
            var folderName   = app.Name + "_" + app.CurrentVersionNumber + "_" + fileName;
            var jsonFileName = folderName + ".json";
            var jsonFilePath = Path.Combine(Environment.CurrentDirectory, "Temp", "Packages", folderName);

            if (Directory.Exists(jsonFilePath))
            {
                Directory.Delete(jsonFilePath, true);
            }
            Directory.CreateDirectory(jsonFilePath);

            if (collectStandards.Result != null)
            {
                var jsonStandards = ConvertUtil.SerializeObject(collectStandards.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, STANDARD_FILE)))
                {
                    sw.Write(jsonStandards);
                }

                appPackpageFlattern.ChainingFiles.Add(STANDARD_FILE);
            }

            if (collectCharts.Result != null)
            {
                var jsonCharts = ConvertUtil.SerializeObject(collectCharts.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, CHART_FILE)))
                {
                    sw.Write(jsonCharts);
                }

                appPackpageFlattern.ChainingFiles.Add(CHART_FILE);
            }

            if (collectDynamicLists.Result != null)
            {
                var jsonDynamicLists = ConvertUtil.SerializeObject(collectDynamicLists.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, DYNAMICLIST_FILE)))
                {
                    sw.Write(jsonDynamicLists);
                }

                appPackpageFlattern.ChainingFiles.Add(DYNAMICLIST_FILE);
            }

            if (collectPages.Result != null)
            {
                var jsonPages = ConvertUtil.SerializeObject(collectPages.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, PAGE_FILE)))
                {
                    sw.Write(jsonPages);
                }

                appPackpageFlattern.ChainingFiles.Add(PAGE_FILE);
            }

            if (collectLocales.Result != null)
            {
                var jsonLocales = ConvertUtil.SerializeObject(collectLocales.Result, true);
                using (var sw = new StreamWriter(
                           Path.Combine(jsonFilePath, LOCALE_FILE)))
                {
                    sw.Write(jsonLocales);
                }

                appPackpageFlattern.ChainingFiles.Add(LOCALE_FILE);
            }

            var jsonFlattern = ConvertUtil.SerializeObject(appPackpageFlattern, true);

            using (var sw = new StreamWriter(Path.Combine(jsonFilePath, jsonFileName)))
            {
                sw.Write(jsonFlattern);
            }

            ZipFile.CreateFromDirectory(jsonFilePath, Path.Combine(Environment.CurrentDirectory, "Temp", "Packages", folderName + ".zip"));

            // Store zip file into file server, allow to create zip file when downloading
            var uploadResponse = await _fileSeviceProvider
                                 .UploadFileAsync(
                Path.Combine(Environment.CurrentDirectory, "Temp", "Packages", folderName + ".zip"),
                package.Creator,
                true);

            return(new PackageResponseModel {
                DownloadableUrl = uploadResponse.DownloadableUrl
            });
        }
示例#17
0
 /// <summary>
 /// 添加/替换配置节(如果存在则替换)
 /// </summary>
 /// <param name="setting">配置节</param>
 public virtual ConfigSetting Set(ConfigSetting setting)
 {
     ConvertUtil.StringToEnum <ConfigSettingOperator>("");
     this.Set(setting.Name, setting);
     return(setting);
 }
示例#18
0
        public async Task <UnpackResponseModel> Unpack(IFormFile uploadFile, string uploader)
        {
            var unpackResponse = new UnpackResponseModel {
            };

            var isFileValid = await _fileSeviceProvider.ValidateFile(uploadFile);

            if (isFileValid)
            {
                var storedFilePath = Path.Combine(Environment.CurrentDirectory, "Temp", "Unpackages");
                Directory.CreateDirectory(storedFilePath);
                var tempFilePath = await SaveFormFileAsync(uploadFile, storedFilePath);

                var unzipFileName   = Path.GetFileNameWithoutExtension(tempFilePath);
                var unzipFolderPath = Path.Combine(storedFilePath, Path.GetFileNameWithoutExtension(tempFilePath));
                if (Directory.Exists(unzipFolderPath))
                {
                    // Delete old directory
                    Directory.Delete(unzipFolderPath, true);
                }

                Directory.CreateDirectory(unzipFolderPath);
                ZipFile.ExtractToDirectory(tempFilePath, unzipFolderPath);
                var jsonFilePath = Path.Combine(unzipFolderPath, unzipFileName + ".json");
                var jsonFound    = File.ReadAllText(jsonFilePath);

                var appFlatternModel = ConvertUtil.DeserializeObject <AppPackageFlatternModel>(jsonFound);

                var app = await _appRepository.GetOneAsync(appFlatternModel.App.Id);

                unpackResponse.IsExistedId   = app != null;
                unpackResponse.IsExistedName = await _appRepository.IsExistAsync(a => a.Name == appFlatternModel.App.Name);

                // Save zip file into file service
                var storedFile = await _fileSeviceProvider.UploadFileAsync(tempFilePath, uploader, true);

                unpackResponse.App          = appFlatternModel.App;
                unpackResponse.UploadFileId = storedFile.FileId;
                unpackResponse.Description  = appFlatternModel.Description;
                unpackResponse.PackagedDate = appFlatternModel.PackagedDate;
                unpackResponse.Creator      = appFlatternModel.Creator;

                unpackResponse.TotalStandards    = appFlatternModel.TotalStandards.GetValueOrDefault();
                unpackResponse.TotalDynamicLists = appFlatternModel.TotalDynamicLists.GetValueOrDefault();
                unpackResponse.TotalCharts       = appFlatternModel.TotalCharts.GetValueOrDefault();
                unpackResponse.TotalPages        = appFlatternModel.TotalPages.GetValueOrDefault();
                unpackResponse.TotalLocales      = appFlatternModel.TotalLocales.GetValueOrDefault();

                foreach (var chainingFile in appFlatternModel.ChainingFiles)
                {
                    switch (chainingFile)
                    {
                    case STANDARD_FILE:
                        var standardFilePath = Path.Combine(unzipFolderPath, STANDARD_FILE);
                        var standardsString  = File.ReadAllText(standardFilePath);
                        var standardsList    = ConvertUtil.DeserializeObject <IEnumerable <StandardComponent> >(standardsString);
                        var standardStates   = new List <ComponentInstallState>();
                        foreach (var standard in standardsList)
                        {
                            standardStates.Add(new ComponentInstallState
                            {
                                Name      = standard.DisplayName,
                                IsExisted = await _standardServiceProvider.CheckStandardExist(a => a.Name == standard.Name || a.Id == standard.Id)
                            });
                        }
                        unpackResponse.Standards = standardStates;
                        break;

                    case DYNAMICLIST_FILE:
                        var dynamicListFilePath = Path.Combine(unzipFolderPath, DYNAMICLIST_FILE);
                        var dynamicListString   = File.ReadAllText(dynamicListFilePath);
                        var dynamicListsList    = ConvertUtil.DeserializeObject <IEnumerable <DynamicList> >(dynamicListString);
                        var dynamicListStates   = new List <ComponentInstallState>();
                        foreach (var dynamicList in dynamicListsList)
                        {
                            dynamicListStates.Add(new ComponentInstallState
                            {
                                Name      = dynamicList.DisplayName,
                                IsExisted = await _dynamicListServiceProvider.CheckDynamicListExist(a => a.Name == dynamicList.Name || a.Id == dynamicList.Id)
                            });
                        }
                        unpackResponse.DynamicLists = dynamicListStates;
                        break;

                    case CHART_FILE:
                        var chartFilePath    = Path.Combine(unzipFolderPath, CHART_FILE);
                        var chartsString     = File.ReadAllText(chartFilePath);
                        var chartsList       = ConvertUtil.DeserializeObject <IEnumerable <Chart> >(chartsString);
                        var chartsListStates = new List <ComponentInstallState>();
                        foreach (var chart in chartsList)
                        {
                            chartsListStates.Add(new ComponentInstallState
                            {
                                Name      = chart.DisplayName,
                                IsExisted = await _chartServiceProvider.CheckChartExist(a => a.Name == chart.Name || a.Id == chart.Id)
                            });
                        }
                        unpackResponse.Charts = chartsListStates;
                        break;

                    case PAGE_FILE:
                        var pageFilePath    = Path.Combine(unzipFolderPath, PAGE_FILE);
                        var pagesString     = File.ReadAllText(pageFilePath);
                        var pagesList       = ConvertUtil.DeserializeObject <IEnumerable <Page> >(pagesString);
                        var pagesListStates = new List <ComponentInstallState>();
                        foreach (var page in pagesList)
                        {
                            pagesListStates.Add(new ComponentInstallState
                            {
                                Name      = page.DisplayName,
                                IsExisted = await _pageServiceProvider.CheckPageExist(a => a.Name == page.Name || a.Id == page.Id)
                            });
                        }
                        unpackResponse.Pages = pagesListStates;
                        break;

                    case LOCALE_FILE:
                        var localeFilePath    = Path.Combine(unzipFolderPath, LOCALE_FILE);
                        var localesString     = File.ReadAllText(localeFilePath);
                        var localesList       = ConvertUtil.DeserializeObject <IEnumerable <Localization> >(localesString);
                        var localesListStates = new List <ComponentInstallState>();
                        foreach (var locale in localesList)
                        {
                            localesListStates.Add(new ComponentInstallState
                            {
                                Name      = locale.LocaleId,
                                IsExisted = await _localizationProvider.CheckLocaleExist(a => a.LocaleId == locale.LocaleId && a.AppId == locale.AppId)
                            });
                        }
                        unpackResponse.Locales = localesListStates;
                        break;
                    }
                }
            }

            return(unpackResponse);
        }
示例#19
0
        public ActionResult Update(string key, Guid userId)
        {
            var msg = new JsonMessage(false, "Cập nhật dữ liệu thành công.");

            try
            {
                if (key != Keyapi)
                {
                    return(Json(0, JsonRequestBehavior.AllowGet));
                }
                var lstproduct = Request["values-arr-product"];
                var dateE      = Request["DateEnd_"];
                var dateS      = Request["DateStart_"];
                var lstCate    = Request["ListCateId"];
                var model      = _da.GetById(ItemId);
                UpdateModel(model);
                model.UserUpdate = userId;
                model.DateEnd    = !string.IsNullOrEmpty(dateE)
                    ? ConvertUtil.ToDateTime(dateE).TotalSeconds()
                    : DateTime.Now.TotalSeconds();
                model.DateStart = !string.IsNullOrEmpty(dateS)
                    ? ConvertUtil.ToDateTime(dateS).TotalSeconds()
                    : DateTime.Now.TotalSeconds();
                model.Shop_Product_Detail.Clear();
                if ((!model.QuantityCode.HasValue || model.QuantityCode == 0) && model.IsAll != true)
                {
                    if (string.IsNullOrEmpty(lstCate))
                    {
                        model.Categories = _da.GetListCateByArrId(lstCate);
                        model.IsAll      = false;
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(lstproduct))
                        {
                            var lstInt = FDIUtils.StringToListInt(lstproduct);
                            model.Shop_Product_Detail = _da.GetListIntProductByArrId(lstInt);
                            model.IsAll = false;
                        }
                    }
                }
                else
                {
                    model.IsAll = false;
                }
                if (model.IsAll == true)
                {
                    model.QuantityCode = 0;
                    model.TotalOrder   = 0;
                }
                if (model.QuantityCode > 0)
                {
                    model.TotalOrder = 0;
                }
                if (model.TotalOrder > 0)
                {
                    model.QuantityCode = 0;
                }
                _da.Save();
            }
            catch (Exception ex)
            {
                msg.Erros   = true;
                msg.Message = "Dữ liệu chưa được cập nhật";
                Log2File.LogExceptionToFile(ex);
            }
            return(Json(msg, JsonRequestBehavior.AllowGet));
        }
示例#20
0
        public async Task <string> Package(string appName, string saveFolderPath)
        {
            var apps = await _appRepository.GetAllAsync(a => a.Name == appName);

            var app = apps.FirstOrDefault();

            if (app != null)
            {
                var collectLocales      = _localizationProvider.GetByAppId(app.Id);
                var collectStandards    = _standardServiceProvider.GetByAppId(app.Id);
                var collectCharts       = _chartServiceProvider.GetByAppId(app.Id);
                var collectDynamicLists = _dynamicListServiceProvider.GetByAppId(app.Id);
                var collectPages        = _pageServiceProvider.GetByAppId(app.Id);
                await Task.WhenAll(collectLocales, collectStandards, collectCharts, collectDynamicLists, collectPages);

                var appPackpageFlattern = new AppPackageFlatternModel
                {
                    App               = app,
                    Description       = "Generated by CLI",
                    PackagedDate      = DateTime.UtcNow,
                    Creator           = "CLI",
                    TotalCharts       = collectCharts.Result?.Count(),
                    TotalDynamicLists = collectDynamicLists.Result?.Count(),
                    TotalStandards    = collectStandards.Result?.Count(),
                    TotalLocales      = collectLocales.Result?.Count(),
                    TotalPages        = collectPages.Result?.Count(),
                    ChainingFiles     = new List <string>()
                };

                var fileName     = DateTime.UtcNow.Ticks.ToString();
                var folderName   = app.Name + "_" + app.CurrentVersionNumber + "_" + fileName;
                var jsonFileName = folderName + ".json";
                var jsonFilePath = Path.Combine(Environment.CurrentDirectory, "Temp", "Packages", folderName);
                if (Directory.Exists(jsonFilePath))
                {
                    Directory.Delete(jsonFilePath, true);
                }
                Directory.CreateDirectory(jsonFilePath);

                if (collectStandards.Result != null)
                {
                    var jsonStandards = ConvertUtil.SerializeObject(collectStandards.Result, true);
                    using (var sw = new StreamWriter(
                               Path.Combine(jsonFilePath, STANDARD_FILE)))
                    {
                        sw.Write(jsonStandards);
                    }

                    appPackpageFlattern.ChainingFiles.Add(STANDARD_FILE);
                }

                if (collectCharts.Result != null)
                {
                    var jsonCharts = ConvertUtil.SerializeObject(collectCharts.Result, true);
                    using (var sw = new StreamWriter(
                               Path.Combine(jsonFilePath, CHART_FILE)))
                    {
                        sw.Write(jsonCharts);
                    }

                    appPackpageFlattern.ChainingFiles.Add(CHART_FILE);
                }

                if (collectDynamicLists.Result != null)
                {
                    var jsonDynamicLists = ConvertUtil.SerializeObject(collectDynamicLists.Result, true);
                    using (var sw = new StreamWriter(
                               Path.Combine(jsonFilePath, DYNAMICLIST_FILE)))
                    {
                        sw.Write(jsonDynamicLists);
                    }

                    appPackpageFlattern.ChainingFiles.Add(DYNAMICLIST_FILE);
                }

                if (collectPages.Result != null)
                {
                    var jsonPages = ConvertUtil.SerializeObject(collectPages.Result, true);
                    using (var sw = new StreamWriter(
                               Path.Combine(jsonFilePath, PAGE_FILE)))
                    {
                        sw.Write(jsonPages);
                    }

                    appPackpageFlattern.ChainingFiles.Add(PAGE_FILE);
                }

                if (collectLocales.Result != null)
                {
                    var jsonLocales = ConvertUtil.SerializeObject(collectLocales.Result, true);
                    using (var sw = new StreamWriter(
                               Path.Combine(jsonFilePath, LOCALE_FILE)))
                    {
                        sw.Write(jsonLocales);
                    }

                    appPackpageFlattern.ChainingFiles.Add(LOCALE_FILE);
                }

                var jsonFlattern = ConvertUtil.SerializeObject(appPackpageFlattern, true);

                using (var sw = new StreamWriter(Path.Combine(jsonFilePath, jsonFileName)))
                {
                    sw.Write(jsonFlattern);
                }

                var savePath = Path.Combine(saveFolderPath, folderName + ".zip");
                ZipFile.CreateFromDirectory(jsonFilePath, savePath);

                return(Path.GetFullPath(savePath));
            }

            throw new Exception("There are no matching app, please try again.");
        }
示例#21
0
        public async Task RestoreBackupPoint(string backupId)
        {
            var backup = await _backupRepository.GetOneAsync(backupId);

            var zipFile = await _fileSeviceProvider.DownloadFileAsync(backup.FileId);

            var fileNameWithoutExt = FileUtil.GetFileNameWithoutExt(zipFile.FileName);
            var restoreFilePath    = Path.Combine(_backupOptions.CurrentValue.RestoreFolderPath, zipFile.FileName);

            using (var fileStream = File.Create(restoreFilePath))
            {
                fileStream.Write(zipFile.FileBytes, 0, zipFile.FileBytes.Length);
            }

            // Release file in memory
            zipFile.FileBytes = null;
            var folderExtractingPath = Path.Combine(_backupOptions.CurrentValue.RestoreFolderPath, fileNameWithoutExt);

            if (Directory.Exists(folderExtractingPath))
            {
                Directory.Delete(folderExtractingPath, true);
            }
            ZipFile.ExtractToDirectory(restoreFilePath, folderExtractingPath);

            var jsonBackupFilePath = Path.Combine(folderExtractingPath, fileNameWithoutExt + ".json");

            var jsonBackupString    = File.ReadAllText(jsonBackupFilePath);
            var backupFlatternModel = ConvertUtil.DeserializeObject <BackupFlatternFileModel>(jsonBackupString);

            foreach (var chainingFile in backupFlatternModel.ChainingFiles)
            {
                switch (chainingFile)
                {
                case APP_FILE:
                    var appFilePath    = Path.Combine(folderExtractingPath, APP_FILE);
                    var appsListString = File.ReadAllText(appFilePath);
                    var appsList       = ConvertUtil.DeserializeObject <IEnumerable <App> >(appsListString);
                    await _appServiceProvider.ForceUpdateApps(appsList);

                    break;

                case STANDARD_FILE:
                    var standardFilePath = Path.Combine(folderExtractingPath, STANDARD_FILE);
                    var standardsString  = File.ReadAllText(standardFilePath);
                    var standardsList    = ConvertUtil.DeserializeObject <IEnumerable <StandardComponent> >(standardsString);
                    await _standardServiceProvider.ForceUpdateStandards(standardsList);

                    break;

                case CHART_FILE:
                    var chartFilePath = Path.Combine(folderExtractingPath, CHART_FILE);
                    var chartsString  = File.ReadAllText(chartFilePath);
                    var chartsList    = ConvertUtil.DeserializeObject <IEnumerable <Chart> >(chartsString);
                    await _chartServiceProvider.ForceUpdateCharts(chartsList);

                    break;

                case DATABASE_FILE:
                    var databaseFilePath = Path.Combine(folderExtractingPath, DATABASE_FILE);
                    var databasesString  = File.ReadAllText(databaseFilePath);
                    var databasesList    = ConvertUtil.DeserializeObject <IEnumerable <DatabaseConnection> >(databasesString);
                    await _databaseServiceProvider.ForceUpdateDatabases(databasesList);

                    break;

                case PAGE_FILE:
                    var pageFilePath = Path.Combine(folderExtractingPath, PAGE_FILE);
                    var pagesString  = File.ReadAllText(pageFilePath);
                    var pagesList    = ConvertUtil.DeserializeObject <IEnumerable <Page> >(pagesString);
                    await _pageServiceProvider.ForceUpdatePages(pagesList);

                    break;

                case DYNAMICLIST_FILE:
                    var dynamicListFilePath = Path.Combine(folderExtractingPath, DYNAMICLIST_FILE);
                    var dynamicListString   = File.ReadAllText(dynamicListFilePath);
                    var dynamicListsList    = ConvertUtil.DeserializeObject <IEnumerable <DynamicList> >(dynamicListString);
                    await _dynamicListServiceProvider.ForceUpdateDynamicLists(dynamicListsList);

                    break;

                default:
                    break;
                }
            }

            Directory.Delete(folderExtractingPath, true);
            File.Delete(restoreFilePath);
        }
示例#22
0
        public async Task Install(string uploadFileId, InstallWay installWay = InstallWay.Merge)
        {
            var zipFile = await _fileSeviceProvider.DownloadFileAsync(uploadFileId);

            var fileNameWithoutExt = FileUtil.GetFileNameWithoutExt(zipFile.FileName);
            var restoreFolderPath  = Path.Combine(Environment.CurrentDirectory, "Temp", "InstallationPackages");

            Directory.CreateDirectory(restoreFolderPath);
            var restoreFilePath = Path.Combine(restoreFolderPath, zipFile.FileName);

            using (var fileStream = File.Create(restoreFilePath))
            {
                fileStream.Write(zipFile.FileBytes, 0, zipFile.FileBytes.Length);
            }
            // Release file in memory
            zipFile.FileBytes = null;
            var folderExtractingPath = Path.Combine(restoreFolderPath, fileNameWithoutExt);

            if (Directory.Exists(folderExtractingPath))
            {
                Directory.Delete(folderExtractingPath, true);
            }
            ZipFile.ExtractToDirectory(restoreFilePath, folderExtractingPath);

            var jsonAppPackageFilePath = Path.Combine(folderExtractingPath, fileNameWithoutExt + ".json");

            var jsonAppPackageString = File.ReadAllText(jsonAppPackageFilePath);
            var appFlatternModel     = ConvertUtil.DeserializeObject <AppPackageFlatternModel>(jsonAppPackageString);

            var isExist = await _appRepository.IsExistAsync(a => a.Id == appFlatternModel.App.Id);

            switch (installWay)
            {
            case InstallWay.Merge:
                break;

            case InstallWay.Wipe:
                if (isExist)
                {
                    // Wipe all data
                    await _standardServiceProvider.DeleteAllByAppIdAsync(appFlatternModel.App.Id);

                    await _dynamicListServiceProvider.DeleteByAppIdAsync(appFlatternModel.App.Id);

                    await _chartServiceProvider.DeleteByAppIdAsync(appFlatternModel.App.Id);

                    await _pageServiceProvider.DeleteByAppIdAsync(appFlatternModel.App.Id);

                    await _localizationProvider.DeleteByAppIdAsync(appFlatternModel.App.Id);
                }
                break;
            }

            foreach (var chainingFile in appFlatternModel.ChainingFiles)
            {
                switch (chainingFile)
                {
                case STANDARD_FILE:
                    var standardFilePath = Path.Combine(folderExtractingPath, STANDARD_FILE);
                    var standardsString  = File.ReadAllText(standardFilePath);
                    var standardsList    = ConvertUtil.DeserializeObject <IEnumerable <StandardComponent> >(standardsString);
                    await _standardServiceProvider.ForceUpdateStandards(standardsList);

                    break;

                case DYNAMICLIST_FILE:
                    var dynamicListFilePath = Path.Combine(folderExtractingPath, DYNAMICLIST_FILE);
                    var dynamicListString   = File.ReadAllText(dynamicListFilePath);
                    var dynamicListsList    = ConvertUtil.DeserializeObject <IEnumerable <DynamicList> >(dynamicListString);
                    await _dynamicListServiceProvider.ForceUpdateDynamicLists(dynamicListsList);

                    break;

                case CHART_FILE:
                    var chartFilePath = Path.Combine(folderExtractingPath, CHART_FILE);
                    var chartsString  = File.ReadAllText(chartFilePath);
                    var chartsList    = ConvertUtil.DeserializeObject <IEnumerable <Chart> >(chartsString);
                    await _chartServiceProvider.ForceUpdateCharts(chartsList);

                    break;

                case PAGE_FILE:
                    var pageFilePath = Path.Combine(folderExtractingPath, PAGE_FILE);
                    var pagesString  = File.ReadAllText(pageFilePath);
                    var pagesList    = ConvertUtil.DeserializeObject <IEnumerable <Page> >(pagesString);
                    await _pageServiceProvider.ForceUpdatePages(pagesList);

                    break;

                case LOCALE_FILE:
                    var localeFilePath = Path.Combine(folderExtractingPath, LOCALE_FILE);
                    var localesString  = File.ReadAllText(localeFilePath);
                    var localesList    = ConvertUtil.DeserializeObject <IEnumerable <Localization> >(localesString);
                    await _localizationProvider.ForceUpdateLocalizations(localesList);

                    break;
                }
            }

            await _appRepository.ForceUpdateAsync(appFlatternModel.App.Id, appFlatternModel.App);

            Directory.Delete(folderExtractingPath, true);
            File.Delete(restoreFilePath);
        }
示例#23
0
文件: Weeknum.cs 项目: nxoxn/EPPlus
        /// <summary>
        /// Execute returns the week number based on the user's input.
        /// </summary>
        /// <param name="arguments">The user specified date and optional return type.</param>
        /// <param name="context">Not used, but needed for overriding the method.</param>
        /// <returns>The week number out of 52 based on the date given.</returns>
        public override CompileResult Execute(IEnumerable <FunctionArgument> arguments, ParsingContext context)
        {
            if (this.ArgumentsAreValid(arguments, 1, out eErrorType argumentError) == false)
            {
                return(new CompileResult(argumentError));
            }
            var serialNumberCandidate = arguments.ElementAt(0).Value;

            if (serialNumberCandidate == null)
            {
                return(new CompileResult(eErrorType.NA));
            }
            var returnType = 1;

            if (arguments.Count() > 1)
            {
                if (arguments.ElementAt(1).Value == null)
                {
                    return(new CompileResult(eErrorType.Num));
                }
                else if (!this.TryGetArgAsInt(arguments, 1, out returnType))
                {
                    return(new CompileResult(eErrorType.Value));
                }
            }
            // Excel treats 0 and fractional dates as special dates and require special output.
            if (ConvertUtil.TryParseObjectToDecimal(serialNumberCandidate, out double serialNumber) && serialNumber < 1 && serialNumber >= 0)
            {
                return(this.getZeroWeek(returnType));
            }
            var isValidDate = ConvertUtil.TryParseDateObject(serialNumberCandidate, out System.DateTime date, out eErrorType? error);

            if (!isValidDate)
            {
                return(new CompileResult(error.Value));
            }
            var calendarType = CalendarWeekRule.FirstDay;
            var startDay     = DayOfWeek.Sunday;

            switch (returnType)
            {
            case 1:
                startDay = DayOfWeek.Sunday;
                break;

            case 2:
                startDay = DayOfWeek.Monday;
                break;

            case 11:
                startDay = DayOfWeek.Monday;
                break;

            case 12:
                startDay = DayOfWeek.Tuesday;
                break;

            case 13:
                startDay = DayOfWeek.Wednesday;
                break;

            case 14:
                startDay = DayOfWeek.Thursday;
                break;

            case 15:
                startDay = DayOfWeek.Friday;
                break;

            case 16:
                startDay = DayOfWeek.Saturday;
                break;

            case 17:
                startDay = DayOfWeek.Sunday;
                break;

            case 21:
                startDay     = DayOfWeek.Thursday;
                calendarType = CalendarWeekRule.FirstFullWeek;
                break;

            default:
                return(new CompileResult(eErrorType.Num));
            }
            if (DateTimeFormatInfo.CurrentInfo == null)
            {
                throw new InvalidOperationException(
                          "Could not execute Weeknum function because DateTimeFormatInfo.CurrentInfo was null");
            }
            var week = DateTimeFormatInfo.CurrentInfo.Calendar.GetWeekOfYear(date, calendarType, startDay);

            return(this.CreateResult(week, DataType.Integer));
        }
示例#24
0
    protected void btnSearchExport_Click(object sender, EventArgs e)
    {
        //搜尋條件
        Dictionary <string, string> conditions = new Dictionary <string, string>();

        conditions.Add("Flag", "1");
        conditions.Add("NodeId", m_NodeId.ToString());
        conditions.Add("KeyWord", txtSearchKeyword.Text.Trim());
        conditions.Add("Type", ddlSearchType.SelectedValue);
        conditions.Add("CustomField1", ddlSearchCustomField1.SelectedValue);
        if (!string.IsNullOrEmpty(txtSearchShowDateStart.Text.Trim()))
        {
            conditions.Add("ShowDateStart", txtSearchShowDateStart.Text.Trim());
        }

        if (!string.IsNullOrEmpty(txtSearchShowDateEnd.Text.Trim()))
        {
            conditions.Add("ShowDateEnd", txtSearchShowDateEnd.Text.Trim());
        }

        if (!string.IsNullOrEmpty(txtSearchCloseDateStart.Text.Trim()))
        {
            conditions.Add("CloseDateStart", txtSearchCloseDateStart.Text.Trim());
        }

        if (!string.IsNullOrEmpty(txtSearchCloseDateEnd.Text.Trim()))
        {
            conditions.Add("CloseDateEnd", txtSearchCloseDateEnd.Text.Trim());
        }

        if (!string.IsNullOrEmpty(ddlSearchStore.SelectedValue))
        {
            conditions.Add("Store", ddlSearchStore.SelectedValue);
        }

        conditions.Add("Order", string.Format("order by {0}", ddlSearchOrder.SelectedValue));
        //conditions.Add("Order", "order by p.CloseDate desc, p.ShowDate desc, p.Title");

        IList <PostVO> postList = m_PostService.GetPostList(conditions);
        DataTable      table    = new DataTable();

        table.Columns.Add("類別", typeof(string));
        table.Columns.Add("狀態", typeof(string));
        table.Columns.Add("進貨日", typeof(string));
        table.Columns.Add("銷貨日", typeof(string));
        table.Columns.Add("品名", typeof(string));
        table.Columns.Add("進貨價", typeof(double));
        table.Columns.Add("售價", typeof(double));
        table.Columns.Add("數量", typeof(int));
        table.Columns.Add("客戶姓名", typeof(string));
        table.Columns.Add("客戶電話", typeof(string));
        table.Columns.Add("商品序號", typeof(string));
        table.Columns.Add("保固商", typeof(string));
        table.Columns.Add("進貨盤商", typeof(string));
        table.Columns.Add("銷售員", typeof(string));
        table.Columns.Add("銷售店點", typeof(string));
        table.Columns.Add("從建立客戶時銷售", typeof(string));

        if (postList != null && postList.Count > 0)
        {
            foreach (PostVO postVO in postList)
            {
                DataRow dr = table.NewRow();

                string showDate  = postVO.ShowDate.HasValue ? postVO.ShowDate.Value.ToString("yyyy/MM/dd") : "";
                string closeDate = postVO.CloseDate.HasValue ? postVO.CloseDate.Value.ToString("yyyy/MM/dd") : "";

                dr[0]  = postVO.CustomField1;
                dr[1]  = postVO.GetStr_Type;
                dr[2]  = showDate;
                dr[3]  = closeDate;
                dr[4]  = postVO.Title;
                dr[5]  = postVO.Price == null ? 0 : postVO.Price;
                dr[6]  = postVO.SellPrice == null ? 0 : postVO.SellPrice;
                dr[7]  = postVO.Quantity;
                dr[8]  = postVO.MemberName;
                dr[9]  = postVO.MemberPhone;
                dr[10] = postVO.ProductSer;
                dr[11] = postVO.WarrantySuppliers;
                dr[12] = postVO.Wholesalers;
                dr[13] = postVO.CustomField2;
                dr[14] = postVO.Store;
                dr[15] = string.IsNullOrEmpty(postVO.MemberId) ? "" : "是";
                table.Rows.Add(dr);
            }
        }

        string uploadRootPath = Server.MapPath("~\\") + "\\App_Data\\temp.xls";

        NPOIHelper.ExportByWeb(table, "類別", string.Format("{0}庫存.xls", ConvertUtil.UtcDateTimeToTaiwanDateTime(DateTime.UtcNow).ToString("yyyyMMdd")), true, uploadRootPath);
    }
        /// <summary>
        ///  填充表格数据
        /// </summary>
        /// <param name="dt">需要填充表</param>
        /// <param name="startDate">起始时间</param>
        /// <param name="endDate">结束时间</param>
        /// <param name="chartTime">时间颗粒(hour、day、 month、year</param>
        public static void FillData(DataTable dt, DateTime startDate, DateTime endDate, string chartTime)
        {
            DateTime d      = ConvertUtil.ToDateTime(startDate);
            DateTime end    = ConvertUtil.ToDateTime(endDate);
            string   chartX = string.Empty;

            switch (chartTime.ToLower())
            {
            case "hour":
                for (int i = 0; i < 24; i++)
                {
                    chartX = d.ToString("yyyy-MM-dd HH");
                    DataRow[] row = dt.Select("chartX='" + chartX + "'");
                    if (row.Length == 0)
                    {
                        dt.Rows.Add(new object[] { chartX, 0 });
                    }
                    d = d.AddHours(1);
                }
                break;

            case "day":
                while (d <= end)
                {
                    chartX = d.ToString("yyyy-MM-dd");
                    DataRow[] row = dt.Select("chartX='" + chartX + "'");
                    if (row.Length == 0)
                    {
                        dt.Rows.Add(new object[] { chartX, 0 });
                    }
                    d = d.AddDays(1);
                }
                break;

            case "month":
                d   = new DateTime(d.Year, d.Month, 1);
                end = new DateTime(end.Year, end.Month, 1);
                while (d <= end)
                {
                    chartX = d.ToString("yyyy-MM");
                    DataRow[] row = dt.Select("chartX='" + chartX + "'");
                    if (row.Length == 0)
                    {
                        dt.Rows.Add(new object[] { chartX, 0 });
                    }
                    d = d.AddMonths(1);
                }
                break;

            case "year":
                d   = new DateTime(d.Year, 1, 1);
                end = new DateTime(end.Year, 1, 1);
                while (d <= end)
                {
                    chartX = d.ToString("yyyy");
                    DataRow[] row = dt.Select("chartX='" + chartX + "'");
                    if (row.Length == 0)
                    {
                        dt.Rows.Add(new object[] { chartX, 0 });
                    }
                    d = d.AddYears(1);
                }
                break;
            }
        }
        private void AppendSharedItems(XmlElement shNode)
        {
            int index = 0;

            foreach (var si in SharedItems)
            {
                if (si == null)
                {
                    _cacheLookup.Add("", index++);  //Can't have null as key.
                    AppendItem(shNode, "m", null);
                }
                else
                {
                    _cacheLookup.Add(si, index++);
                    var t  = si.GetType();
                    var tc = Type.GetTypeCode(t);

                    switch (tc)
                    {
                    case TypeCode.Byte:
                    case TypeCode.SByte:
                    case TypeCode.UInt16:
                    case TypeCode.UInt32:
                    case TypeCode.UInt64:
                    case TypeCode.Int16:
                    case TypeCode.Int32:
                    case TypeCode.Int64:
                    case TypeCode.Decimal:
                    case TypeCode.Double:
                    case TypeCode.Single:
                        AppendItem(shNode, "n", ConvertUtil.GetValueForXml(si, false));
                        break;

                    case TypeCode.DateTime:
                        var d = ((DateTime)si);
                        if (d.Year > 1899)
                        {
                            AppendItem(shNode, "d", d.ToString("s"));
                        }
                        else
                        {
                            AppendItem(shNode, "d", d.ToString("HH:mm:ss", CultureInfo.InvariantCulture));
                        }
                        break;

                    case TypeCode.Boolean:
                        AppendItem(shNode, "b", ConvertUtil.GetValueForXml(si, false));
                        break;

                    case TypeCode.Empty:
                        AppendItem(shNode, "m", null);
                        break;

                    default:
                        if (t == typeof(TimeSpan))
                        {
                            d = new DateTime(((TimeSpan)si).Ticks);
                            if (d.Year > 1899)
                            {
                                AppendItem(shNode, "d", d.ToString("s"));
                            }
                            else
                            {
                                AppendItem(shNode, "d", d.ToString("HH:mm:ss", CultureInfo.InvariantCulture));
                            }
                        }
                        else if (t == typeof(ExcelErrorValue))
                        {
                            AppendItem(shNode, "e", si.ToString());
                        }
                        else
                        {
                            AppendItem(shNode, "s", si.ToString());
                        }
                        break;
                    }
                }
            }
        }
示例#27
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtHandingPerson.Text.Trim()))
            {
                MsgBox.Warn("经办人不能为空!");
                txtHandingPerson.Focus();
                return;
            }
            if (string.IsNullOrEmpty(txtReturnDriver.Text.Trim()))
            {
                MsgBox.Warn("退货司机不能为空!");
                txtReturnDriver.Focus();
                return;
            }
            if (string.IsNullOrEmpty(txtCrnAmount.Text.Trim()))
            {
                MsgBox.Warn("退货金额不能为空!");
                txtCrnAmount.Focus();
                return;
            }
            if (!ConvertUtil.IsDecimal(txtCrnAmount.Text.Trim()))
            {
                MsgBox.Warn("退货金额必须是数字!");
                txtCrnAmount.Focus();
                return;
            }
            if (ConvertUtil.ToDecimal(txtCrnAmount.Text.Trim()) < 0)
            {
                MsgBox.Warn("退货金额不能小于0!");
                txtCrnAmount.Focus();
                return;
            }
            if (listReturnReason.EditValue == null)
            {
                MsgBox.Warn("退货原因不能为空!");
                listReturnReason.Focus();
                return;
            }
            if (MsgBox.AskOK("确定保存该退货单吗?") != DialogResult.OK)
            {
                return;
            }
            //保存退货单
            try
            {
                Cursor.Current = Cursors.WaitCursor;
                returnDal.SaveReturnBill(soHeader, lstDetail, GlobeSettings.LoginedUser.WarehouseCode, ConvertUtil.ToDatetime(dateReturnDate.EditValue),
                                         txtReturnDriver.Text.Trim(), txtHandingPerson.Text.Trim(), txtWmsRemark.Text.Trim(), ConvertUtil.ToDecimal(txtReturnAmount.Text.Trim()),
                                         GlobeSettings.LoginedUser.UserCode, ConvertUtil.ToString(listReturnReason.EditValue), txtReturnRemark.Text,
                                         ConvertUtil.ToDecimal(txtCrnAmount.Text.Trim()), out errMsg);

                if (!string.IsNullOrEmpty(errMsg))
                {
                    MsgBox.Warn(errMsg);
                }
                else
                {
                    MsgBox.OK("保存成功!");
                    this.isEdite = false;
                    //GetSoDetails();
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                MsgBox.Warn(ex.Message);
                return;
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
        private void AddItems(EPPlusReadOnlyList <Object> items, XmlNode itemsNode, bool updateCacheLookup)
        {
            if (updateCacheLookup)
            {
                _cacheLookup = new Dictionary <object, int>(new CacheComparer());
            }

            foreach (XmlElement c in itemsNode.ChildNodes)
            {
                if (c.LocalName == "s")
                {
                    items.Add(c.Attributes["v"].Value);
                }
                else if (c.LocalName == "d")
                {
                    if (ConvertUtil.TryParseDateString(c.Attributes["v"].Value, out DateTime d))
                    {
                        items.Add(d);
                    }
                    else
                    {
                        items.Add(c.Attributes["v"].Value);
                    }
                }
                else if (c.LocalName == "n")
                {
                    if (ConvertUtil.TryParseNumericString(c.Attributes["v"].Value, out double num))
                    {
                        items.Add(num);
                    }
                    else
                    {
                        items.Add(c.Attributes["v"].Value);
                    }
                }
                else if (c.LocalName == "b")
                {
                    if (ConvertUtil.TryParseBooleanString(c.Attributes["v"].Value, out bool b))
                    {
                        items.Add(b);
                    }
                    else
                    {
                        items.Add(c.Attributes["v"].Value);
                    }
                }
                else if (c.LocalName == "e")
                {
                    if (ExcelErrorValue.Values.StringIsErrorValue(c.Attributes["v"].Value))
                    {
                        items.Add(ExcelErrorValue.Parse(c.Attributes["v"].Value));
                    }
                    else
                    {
                        items.Add(c.Attributes["v"].Value);
                    }
                }
                else
                {
                    items.Add(null);
                }
                if (updateCacheLookup)
                {
                    _cacheLookup.Add(items[items.Count - 1] ?? "", items.Count - 1);
                }
            }
        }
示例#29
0
        private string GenerateFilterColumns(IEnumerable <ChartFilterValue> filterValues, ref List <ChartReportParameter> parameters)
        {
            var filterStr = string.Empty;

            var counter = 0;

            foreach (var filter in filterValues)
            {
                switch (filter.FilterType)
                {
                case Entities.Components.FilterType.Checkbox:
                    var tempCheckBoxParam = StringUtil.GenerateUniqueName();
                    filterStr += string.Format("{0}={1}", GetFieldFormat(filter.Name), GetFieldWithParamSign(tempCheckBoxParam));

                    // Only for MySQL, bool is 0 or 1
                    var passValue = 0;
                    if (filter.Value == "0" || filter.Value == "1")
                    {
                        passValue = filter.Value == "0" ? 0 : 1;
                    }
                    else
                    {
                        passValue = !bool.Parse(filter.Value) ? 0 : 1;
                    }
                    parameters.Add(new ChartReportParameter
                    {
                        Name        = tempCheckBoxParam,
                        CastedValue = passValue == 1,
                        ValueType   = "bool"
                    });
                    break;

                case Entities.Components.FilterType.Select:
                    if (filter.IsMultiple)
                    {
                        var isArrayStr = filter.Value.Any(a => a == '\'' || a == '"');
                        if (isArrayStr)
                        {
                            var arrayStr = ConvertUtil.DeserializeObject <List <string> >(filter.Value);
                            foreach (var str in arrayStr)
                            {
                                if (arrayStr.IndexOf(str) == 0)
                                {
                                    filterStr += "(";
                                }
                                var tempSelectParam = StringUtil.GenerateUniqueName();
                                filterStr += string.Format("{0}={1}", GetFieldFormat(filter.Name), GetFieldWithParamSign(tempSelectParam));
                                if (arrayStr.IndexOf(str) < arrayStr.Count - 1)
                                {
                                    filterStr += " OR ";
                                }
                                else
                                {
                                    filterStr += ")";
                                }

                                parameters.Add(new ChartReportParameter
                                {
                                    Name        = tempSelectParam,
                                    CastedValue = str,
                                    ValueType   = "string"
                                });
                            }
                        }
                        else
                        {
                            var longStr = ConvertUtil.DeserializeObject <List <long> >(filter.Value);
                            foreach (var longElem in longStr)
                            {
                                if (longStr.IndexOf(longElem) == 0)
                                {
                                    filterStr += "(";
                                }
                                var tempSelectParam = StringUtil.GenerateUniqueName();
                                filterStr += string.Format("{0}={1}", GetFieldFormat(filter.Name), GetFieldWithParamSign(tempSelectParam));
                                if (longStr.IndexOf(longElem) < longStr.Count - 1)
                                {
                                    filterStr += " OR ";
                                }
                                else
                                {
                                    filterStr += ")";
                                }

                                parameters.Add(new ChartReportParameter
                                {
                                    Name        = tempSelectParam,
                                    CastedValue = longElem,
                                    ValueType   = "long"
                                });
                            }
                        }
                    }
                    else
                    {
                        var tempSelectParam = StringUtil.GenerateUniqueName();
                        filterStr += string.Format("{0}={1}", GetFieldFormat(filter.Name), GetFieldWithParamSign(tempSelectParam));

                        // Check value is int or string
                        long selectValue = 0;
                        var  isLong      = false;
                        if (long.TryParse(filter.Value, out selectValue))
                        {
                            isLong = true;
                        }
                        ChartReportParameter selectMySqlParameter;
                        if (isLong)
                        {
                            selectMySqlParameter = new ChartReportParameter
                            {
                                Name        = tempSelectParam,
                                CastedValue = selectValue,
                                ValueType   = "long"
                            };
                        }
                        else
                        {
                            selectMySqlParameter = new ChartReportParameter
                            {
                                Name        = tempSelectParam,
                                CastedValue = filter.Value,
                                ValueType   = "string"
                            };
                        }
                        parameters.Add(selectMySqlParameter);
                    }
                    break;

                case Entities.Components.FilterType.NumberPicker:
                    var tempNumberRangeParam = StringUtil.GenerateUniqueName();
                    if (filter.IsMultiple)
                    {
                        var arrayStrings         = ConvertUtil.DeserializeObject <string[]>(filter.Value);
                        var containsNumberMinMax = arrayStrings[0].Contains("-");
                        if (containsNumberMinMax)
                        {
                            // Ex: [10-20,20-30]
                            var compareStr  = string.Empty;
                            var counterTemp = 0;
                            foreach (var numRange in arrayStrings)
                            {
                                var splitted = numRange.Split("-");

                                var tempStartNumParam = StringUtil.GenerateUniqueName();
                                var tempEndNumParam   = StringUtil.GenerateUniqueName();
                                if (counterTemp < arrayStrings.Length - 1)
                                {
                                    compareStr +=
                                        string.Format(options.NumberRangeCompare + " OR ",
                                                      GetFieldFormat(filter.Name), GetFieldWithParamSign(tempStartNumParam), GetFieldWithParamSign(tempEndNumParam));
                                }
                                else
                                {
                                    compareStr += string.Format(options.NumberRangeCompare,
                                                                GetFieldFormat(filter.Name), GetFieldWithParamSign(tempStartNumParam), GetFieldWithParamSign(tempEndNumParam));
                                }
                                counterTemp++;
                                parameters.Add(new ChartReportParameter
                                {
                                    Name        = tempStartNumParam,
                                    CastedValue = long.Parse(splitted[0]),
                                    ValueType   = "long"
                                });
                                parameters.Add(new ChartReportParameter
                                {
                                    Name        = tempEndNumParam,
                                    CastedValue = long.Parse(splitted[1]),
                                    ValueType   = "long"
                                });
                            }

                            filterStr += string.Format("({0})", compareStr);
                        }
                        else
                        {
                            var inNumberStr = string.Join(",", arrayStrings);
                            inNumberStr = string.Format(options.InOperator, GetFieldFormat(filter.Name), inNumberStr);
                            filterStr  += inNumberStr;
                        }
                    }
                    else
                    {
                        var containsNumberMinMax = filter.Value.Contains("-");
                        if (containsNumberMinMax)
                        {
                            var splitted          = filter.Value.Split("-");
                            var tempStartNumParam = StringUtil.GenerateUniqueName();
                            var tempEndNumParam   = StringUtil.GenerateUniqueName();
                            filterStr += string.Format(
                                options.NumberRangeCompare,
                                GetFieldFormat(filter.Name),
                                GetFieldWithParamSign(tempStartNumParam),
                                GetFieldWithParamSign(tempEndNumParam));
                            parameters.Add(new ChartReportParameter
                            {
                                Name        = tempStartNumParam,
                                CastedValue = long.Parse(splitted[0]),
                                ValueType   = "long"
                            });
                            parameters.Add(new ChartReportParameter
                            {
                                Name        = tempEndNumParam,
                                CastedValue = long.Parse(splitted[1]),
                                ValueType   = "long"
                            });
                        }
                        else
                        {
                            filterStr += string.Format("{0}={1}",
                                                       GetFieldFormat(filter.Name),
                                                       GetFieldWithParamSign(tempNumberRangeParam));
                            parameters.Add(new ChartReportParameter
                            {
                                Name        = tempNumberRangeParam,
                                CastedValue = long.Parse(filter.Value),
                                ValueType   = "long"
                            });
                        }
                    }
                    break;

                case Entities.Components.FilterType.DatePicker:
                    if (filter.IsMultiple)
                    {
                        // Ex: ['10/10/2019', '11/10/2019']
                        var tempStartDateParam = StringUtil.GenerateUniqueName();
                        var tempEndDateParam   = StringUtil.GenerateUniqueName();
                        filterStr +=
                            string.Format("({0} AND {1})",
                                          string.Format(
                                              options.DateCompare,
                                              GetFieldFormat(filter.Name),
                                              ">=",
                                              GetFieldWithParamSign(tempStartDateParam)),
                                          string.Format(
                                              options.DateCompare,
                                              GetFieldFormat(filter.Name),
                                              "<=",
                                              GetFieldWithParamSign(tempEndDateParam)));
                        var arrayDates        = ConvertUtil.DeserializeObject <string[]>(filter.Value);
                        var startDatePickerDt = DateTime.Parse(arrayDates[0]);
                        var endDatePickerDt   = DateTime.Parse(arrayDates[1]);
                        parameters.Add(new ChartReportParameter
                        {
                            Name        = tempStartDateParam,
                            CastedValue = startDatePickerDt,
                            ValueType   = "date"
                        });
                        parameters.Add(new ChartReportParameter
                        {
                            Name        = tempEndDateParam,
                            CastedValue = endDatePickerDt,
                            ValueType   = "date"
                        });
                    }
                    else
                    {
                        var tempDatePickerParam = StringUtil.GenerateUniqueName();
                        filterStr += string.Format(
                            options.DateCompare,
                            GetFieldFormat(filter.Name),
                            "=",
                            GetFieldWithParamSign(tempDatePickerParam));
                        // Support Date Format: MM/DD/YYYY
                        var datePickerDt = DateTime.Parse(filter.Value);
                        parameters.Add(new ChartReportParameter
                        {
                            Name        = tempDatePickerParam,
                            CastedValue = datePickerDt,
                            ValueType   = "date"
                        });
                    }
                    break;

                case Entities.Components.FilterType.MonthYearPicker:
                    if (filter.IsMultiple)
                    {
                        var tempStartDateParam = StringUtil.GenerateUniqueName();
                        var tempEndDateParam   = StringUtil.GenerateUniqueName();
                        filterStr +=
                            string.Format("({0} AND {1})",
                                          string.Format(
                                              options.DateCompare,
                                              GetFieldFormat(filter.Name),
                                              ">=",
                                              GetFieldWithParamSign(tempStartDateParam)),
                                          string.Format(
                                              options.DateCompare,
                                              GetFieldFormat(filter.Name),
                                              "<=",
                                              GetFieldWithParamSign(tempEndDateParam)));

                        var arrayDates        = ConvertUtil.DeserializeObject <string[]>(filter.Value);
                        var startDatePickerDt = DateTime.Parse(arrayDates[0]);
                        var endDatePickerDt   = DateTime.Parse(arrayDates[1]);
                        parameters.Add(new ChartReportParameter
                        {
                            Name        = tempStartDateParam,
                            CastedValue = startDatePickerDt,
                            ValueType   = "date"
                        });
                        parameters.Add(new ChartReportParameter
                        {
                            Name        = tempEndDateParam,
                            CastedValue = endDatePickerDt,
                            ValueType   = "date"
                        });
                    }
                    else
                    {
                        var tempMonthPickerParam = StringUtil.GenerateUniqueName();
                        var tempYearPickerParam  = StringUtil.GenerateUniqueName();
                        filterStr +=
                            string.Format("({0} AND {1})",
                                          string.Format(
                                              options.MonthCompare,
                                              GetFieldFormat(filter.Name),
                                              "=",
                                              GetFieldWithParamSign(tempMonthPickerParam)),
                                          string.Format(
                                              options.YearCompare,
                                              GetFieldFormat(filter.Name),
                                              "=",
                                              GetFieldWithParamSign(tempYearPickerParam)));
                        // Support Date Format: MM/DD/YYYY
                        var dateMonthPickerDt = DateTime.Parse(filter.Value);
                        parameters.Add(new ChartReportParameter
                        {
                            Name        = tempMonthPickerParam,
                            CastedValue = dateMonthPickerDt,
                            ValueType   = "date"
                        });
                        parameters.Add(new ChartReportParameter
                        {
                            Name        = tempYearPickerParam,
                            CastedValue = dateMonthPickerDt,
                            ValueType   = "date"
                        });
                    }
                    break;
                }
                counter++;
                if (counter < filterValues.Count())
                {
                    filterStr += " AND ";
                }
            }

            return(filterStr);
        }
 public void IntToTimeSpan()
 {
     ConvertUtil.GetTypedCellValue <TimeSpan>(122);
 }