public static void Save(OrderModel model)
        {
            Order entity = getEntityByModel(model);

            string result = string.Empty;

            if (entity.IsValid())
            {
                if (model.Id > 0)
                {
                    result = service.Update(entity);
                }
                else
                {
                    result = service.Insert(entity);
                }

                if (!string.IsNullOrEmpty(result))
                {
                    var savedLines = getDetailByOrderId(Convert.ToInt64(result));
                    if (savedLines.Count() > model.OrderDetail.Count())
                    {
                        var tobeDeleted = savedLines.Take(savedLines.Count() - model.OrderDetail.Count());
                        foreach (var item in tobeDeleted)
                        {
                            service.DeleteOrderDetail(item.Id);
                        }
                        savedLines = getDetailByOrderId(Convert.ToInt64(result));
                    }

                    foreach (var detail in model.OrderDetail)
                    {
                        OrderDetail detailEntity = getEntityByModel(detail);
                        if (detailEntity.IsValid())
                        {
                            detailEntity.OrderId = Convert.ToInt64(result);
                            if (savedLines.Count() > 0)
                            {
                                detailEntity.Id = savedLines.FirstOrDefault().Id;
                                savedLines.Remove(savedLines.FirstOrDefault(rec => rec.Id == detailEntity.Id));
                                service.Update(detailEntity);
                            }
                            else
                            {
                                service.Insert(detailEntity);
                            }
                        }
                    }
                }
            }
        }