Example #1
0
        private async void olvDetails_CellEditFinishing(object sender, CellEditEventArgs e)
        {
            if (e.Cancel)
            {
                return;
            }

            var model = e.RowObject as Detail;

            if (model == null)
            {
                throw new Exception("Cast is not possible.Wrong model");
            }


            if (e.NewValue.Equals(e.Value))
            {
                e.Cancel = true;
                olvDetails.RemoveObjects(olvDetails.Objects.Cast <Detail>().Where(c => c.Id == 0).ToArray());
                return;
            }

            if (e.Column == olvName)
            {
                model.Name = e.NewValue.ToString();
            }
            else if (e.Column == olvPartNumber)
            {
                if (string.IsNullOrEmpty(e.NewValue.ToString()))
                {
                    e.Cancel = true;
                }
                else
                {
                    model.PartNumber = e.NewValue.ToString();
                }
            }
            else if (e.Column == olvPrice)
            {
                model.Price = (decimal)(string.IsNullOrWhiteSpace(e.NewValue.ToString()) ? 0m : e.NewValue);
            }
            else if (e.Column == olvRemark)
            {
                model.Remark = e.NewValue.ToString();
            }
            else if (e.Column == olvMaterial)
            {
                model.Material = e.NewValue.ToString();
                _materials.Add(model.Material);
            }
            else if (e.Column == olvLength)
            {
                model.Length = Math.Round((double)(decimal)e.NewValue, 2);
            }

            if (model.Id != 0)
            {
                await _detailsRepo.UpdateAsync(model);
            }
            else
            {
                await _detailsRepo.InsertAsync(model);
            }
        }