Ejemplo n.º 1
0
        public ActionResult Edit(int id, string planIds)
        {
            var entity = _appointmentContract.Entities.Include(i => i.CollocationPlans).FirstOrDefault(i => !i.IsDeleted && i.IsEnabled && i.Id == id);

            if (entity == null)
            {
                return(Json(OperationResult.Error("预约信息不存在")));
            }

            if (entity.State != AppointmentState.预约中)
            {
                switch (entity.State.Value)
                {
                case AppointmentState.预约中:
                    break;

                case AppointmentState.已处理:
                    return(Json(OperationResult.Error("已完成的预约")));

                case AppointmentState.已预约:
                    return(Json(OperationResult.Error("已处理的预约")));

                default:
                    return(Json(OperationResult.Error("预约状态异常")));
                }
            }
            var arr = planIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(i => int.Parse(i)).Distinct().ToList();


            var planEntities = _collocationPlanContract.Entities.Where(p => !p.IsDeleted && p.IsEnabled && arr.Contains(p.Id)).ToList();

            if (planEntities.Count <= 0 || planEntities.Count != arr.Count)
            {
                return(Json(OperationResult.Error("搭配方案错误")));
            }
            entity.State = AppointmentState.已处理;
            entity.CollocationPlans.Clear();
            planEntities.ForEach(e => entity.CollocationPlans.Add(e));

            var res = _appointmentContract.Update(entity);

            return(Json(res));
        }