示例#1
0
        public ResponseMessage SetScheduling(SchedulingEntityInsertOrUpdate insertOrUpdate)
        {
            ResponseMessage replay = new ResponseMessage();

            try
            {
                int clientId = ValidSecurityToken(authHeader);
                SchedulingController controller = new SchedulingController();

                if (insertOrUpdate == null)
                {
                    insertOrUpdate = new SchedulingEntityInsertOrUpdate();
                }
                insertOrUpdate.ClientId = clientId;

                controller.SetSheduling(insertOrUpdate);
                replay.Success = true;
                replay.Message = "Scheduling Change successfully";
            }
            catch (Exception ex)
            {
                replay.Success   = false;
                replay.Message   = ex.Message;
                replay.Exception = ex.Treatment();
            }
            return(replay);
        }
示例#2
0
        public void SetSheduling(SchedulingEntityInsertOrUpdate insertOrUpdate)
        {
            if (insertOrUpdate == null)
            {
                throw new ArgumentNullException("insertOrUpdate", "InsertOrUpdate is null");
            }

            if (insertOrUpdate.ClientId <= 0)
            {
                throw new ArgumentNullException("insertOrUpdate.ClientId", "InsertOrUpdate.ClientId is null");
            }

            if (insertOrUpdate.PetId <= 0)
            {
                throw new ArgumentNullException("insertOrUpdate.PetId", "InsertOrUpdate.PetId is null");
            }

            if (insertOrUpdate.CompanyId <= 0)
            {
                throw new ArgumentNullException("insertOrUpdate.CompanyId", "InsertOrUpdate.CompanyId is null");
            }

            if (insertOrUpdate.AddressId <= 0)
            {
                throw new ArgumentNullException("insertOrUpdate.AddressId", "InsertOrUpdate.AddressId is null");
            }


            if (insertOrUpdate.DateStart > insertOrUpdate.DateEnd)
            {
                throw new ArgumentOutOfRangeException("insertOrUpdate.DateStart", "DateStart greater than DateEnd");
            }

            if (insertOrUpdate.DateStart < DateTime.Now.AddMinutes(10))
            {
                throw new ArgumentOutOfRangeException("insertOrUpdate.DateStart", "DateStart greater than today's date");
            }

            using (Petz_dbEntities db = new Petz_dbEntities())
            {
                petz_Pet_Scheduling p;
                if (insertOrUpdate.Id > 0)
                {
                    p = db.petz_Pet_Scheduling.FirstOrDefault(x => x.scheduling_id == insertOrUpdate.Id);
                    if (p == null)
                    {
                        p = new petz_Pet_Scheduling();
                        insertOrUpdate.Id = 0;
                        p.date_insert     = DateTime.Now;
                        p.status_id       = (int)StatusEnum.EventCreateByClient; //Evento Criado pelo Cliente
                        if (insertOrUpdate.UserId.HasValue)
                        {
                            p.insert_user_id = insertOrUpdate.UserId.Value;
                        }
                        else
                        {
                            p.insert_client_id = insertOrUpdate.ClientId;
                        }
                    }
                    else
                    {
                        p.date_update = DateTime.Now;
                        p.status_id   = (int)StatusEnum.EventChangedByClient; //Evento Alterado pelo Cliente
                        if (insertOrUpdate.UserId.HasValue)
                        {
                            p.update_user_id = insertOrUpdate.UserId.Value;
                        }
                        else
                        {
                            p.update_client_id = insertOrUpdate.ClientId;
                        }
                    }
                }
                else
                {
                    p = new petz_Pet_Scheduling
                    {
                        status_id   = (int)StatusEnum.EventCreateByClient,
                        date_insert = DateTime.Now
                    };
                    //Evento Criado pelo Cliente
                    if (insertOrUpdate.UserId.HasValue)
                    {
                        p.insert_user_id = insertOrUpdate.UserId.Value;
                    }
                    else
                    {
                        p.insert_client_id = insertOrUpdate.ClientId;
                    }
                }

                int companyAddressId = db.petz_Company_Address.Where(x => x.company_id == insertOrUpdate.CompanyId && x.address_id == insertOrUpdate.AddressId).Select(x => x.company_address_id).FirstOrDefault();

                p.client_id             = insertOrUpdate.ClientId;
                p.company_address_id    = companyAddressId;
                p.pet_id                = insertOrUpdate.PetId;
                p.scheduling_comments   = insertOrUpdate.Comments;
                p.scheduling_date_start = insertOrUpdate.DateStart;
                p.scheduling_date_end   = insertOrUpdate.DateEnd;

                p.service_id   = insertOrUpdate.ServiceId;
                p.employees_id = insertOrUpdate.EmployeeId;

                if (insertOrUpdate.Id <= 0)
                {
                    db.petz_Pet_Scheduling.Add(p);
                }

                db.SaveChanges();
            }
        }